Script pour réduire une arborescence

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
Antho02
Batcheur occasionnel
Messages : 3
Enregistré le : 14 oct. 2010 17:55

Script pour réduire une arborescence

Message par Antho02 »

Bonjour a tous

je viens de trouver ce forum qui à l'air top et qui va surement pouvoir m'aider, c'a fait quasi 10 ans que je n'ai pas fait un script et j'avoue que j'ai tout perdu
je cherche un script qui me permettrait de trier un contenu dans mon HDD


je m'explique :

j'ai un répertoire 0000000000000000 (j'appellerai niveau 1)
dedans des sous répertoires avec des noms de 8 caractères en hexadécimal type 547A108E (niveau 2)
et encore dans ceux là, des sous répertoitres d8 8 caracteres en hexa également. (niveau 3)


ce que je voudrai c'est pouvoir copier tous les répertoires de niveau 3 et leur contenu vers un répertoire de mon choix, ou meme vers 0000000000000000/tri

quelqu'un saurait-il m'aider a faire ca? ca serait vraiment super sympa et ca me sauverai :D
merci d'avance si vous acceptez de m'aider ;)
DarkBatcher
King Of Batch
Messages : 66
Enregistré le : 06 juil. 2010 17:37
Contact :

Re: Script pour réduire une arborescence

Message par DarkBatcher »

hello,

je crois que j'ai ce que tu veux:

Code : Tout sélectionner

@echo OFF
SETLOCAL enabledelayedexpansion
FOR /r "[[disque]chemin]" %%A IN (.) DO (
set chemin=%%A
set chemin=!chemin:.=!
IF NOT "!chemin:~0,29!"=="" MOVE /y !chemin!*.* "[[disque]chemin]"
)
Il faut que tu remplace "[[disque]chemin]" par le chemin du dossier.
et que tu remplace le 29 de

Code : Tout sélectionner

IF NOT "!chemin:~0,29!"=="" MOVE /y !chemin!*.* "[[disque]chemin]"
par le nombre de caractères que contiennent le chemin du dossier de niveau 1 et des dossier de niveau 2
EX: c:\bidule\45A56985\ contient 19 caractères.

@+
Ce forum vous à aidé? Faites le vivre en vous connectant régulièrement et en répondant au questions posées sur le forum si vous avez une solution
Antho02
Batcheur occasionnel
Messages : 3
Enregistré le : 14 oct. 2010 17:55

Re: Script pour réduire une arborescence

Message par Antho02 »

bonjour
merci pour ta réponse,

apres pas mal de recherche hier, je suis arrivé a faire ceci :

for /f "delims=" %i in ('dir /ad/b') do xcopy %i test\ /s

en exécutant directement dans le répertoire 0000000000000000 et test étant le répertoire de destination.

commande alternative qui a fonctionné aussi : for /d %i in (*) do do xcopy %i test\ /s

meme si je n'ai pas tout compris ca a fonctionné ;)

merci :D
Répondre