Page 1 sur 1

Script pour réduire une arborescence

Posté : 14 oct. 2010 18:04
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 ;)

Re: Script pour réduire une arborescence

Posté : 15 oct. 2010 18:11
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.

@+

Re: Script pour réduire une arborescence

Posté : 15 oct. 2010 22:19
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