IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Déplacement de fichiers depuis sous dossier puis suppression des sous dossiers [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Par défaut Déplacement de fichiers depuis sous dossier puis suppression des sous dossiers
    Bonjour,

    je cherche a créer un fichier bat pour déplacer des images de sous dossiers à des dossiers parents et supprimer les sous dossiers après.
    je suis sous windows 10 et malheureusement j'ai très peu de connaissance dans le domaine.

    exemple de l'arborescence :
    Nom : exempleSouhaite.png
Affichages : 2856
Taille : 36,9 Ko

    le but étant de partir de la première arborescence pour arriver a un résultat comme la seconde arborescence avec seulement les 4 dossiers restant.

    en lisant a droite a gauche je penser faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SET racine="dossier du fichier bat, ou mettre manuellement le dossier souhaité"
    
    for "chaque sous dossier de %racine% = dossierActuel" do
    	if %racine%\dossierActuel\*\content\images\large (si le dossier existe)
    		C:\>copy %racine%\dossierActuel\*\content\images\large\*.jpg %racine%\dossierActuel\	
    (la commande move ne permet pas de déplacer plusieurs fichiers a la fois sans connaitre leurs nom non?)
    	end
    	// je ferai plusieurs if pour les quelques possibilité d'arborescence y'en aura que 2-3 max ^^
    	if %racine%\dossierActuel\content\images\large
    		C:\>copy %racine%\dossierActuel\content\images\large\*.jpg %racine%\dossierActuel\
    	end
    	C:\>del %racine%\dossierActuel\*	(censé supprimer tous les fichiers restant de tous les sous dossiers)
    	C:\>rd %racine%\dossierActuel	(censé supprimer tous les sous dossiers vide trouvé)
    	(del et rd après les if car peut importe l'arborescence on souhaite virer tout ce qui n'est pas dans racine\dossierActuel\ car une des arborescence a déjà les bon fichiers au bon endroit et a juste des sous dossiers encombrant ^^)
    end

    le problème étant qu'en dehors d'avoir trouver les commande qu'il me semble devoir utiliser je n'ai guère de notion concernant leur implémentation dans un script.

    si ce n'est pas possible dans l'état, ce n'est pas gênant si il me suffit de déplacer le fichier bat de sous dossier a sous dossier pour l'exécuter.


    Merci du temps passer a me lire ainsi que je l’espère des exemple que vous me proposerez pour réussir :p

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Par défaut
    Bonsoir,

    Après de nombreuses recherches et essais j'ai finalement réussit a faire ce que je souhaité.

    au final j'ai utilisé powershell, qui est plus facilement compréhensible ^^ (ça ressemble plus a de la programmation ^^), mais surtout car windows 10 m’empêche de lancer mes fichiers .bat ou .cmd directement depuis que je les ai associer a notepad++ :/

    pour ceux souhaitant le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $racine = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent
    cd $racine
    $arbo = Get-ChildItem $racine -exclude *.*
    foreach ($item in $arbo)
    {
    	if (Test-Path "$item\content\images\large")
    	{
    		move-item -path $item\content\images\large\*.jpg -destination $item
    	}
    	if (Test-Path "$item\*\content\images\large")
    	{
    		move-item -path $item\*\content\images\large\*.jpg -destination $item
    	}
    	get-childitem $item\*\* -include *.* -recurse | remove-item -recurse
    	get-childitem $item\ -exclude *.* -recurse | remove-item -recurse
    	write-Host "dossier : $item corrigé"
    }
    ça reste adaptable et y'a surement de bien meilleurs façon de le faire mais pour mon usage perso ça me suffit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/08/2012, 08h44
  2. Réponses: 0
    Dernier message: 01/02/2010, 14h51
  3. Réponses: 7
    Dernier message: 09/11/2009, 12h19
  4. [batch] suppression des sous-dossiers
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 12/03/2007, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo