Utilise for pour traiter ligne par ligne le résultat de dir
1 2 3
| for /f "delims=" %%i in ('dir /b /s c:\') do (
...
) |
utilise les opérateurs de batch pour réccupérer uniquement le nom du fichier dans for (extrait de l'aide de for : )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| De plus, la substitution de références de variables FOR a été améliorée
Vous pouvez maintenant utiliser la syntaxe optionnelle suivante*:
%~I - étend %I en supprimant les guillemets (")
%~fI - étend %I en nom de chemin d'accès reconnu
%~dI - étend %I en lettre de lecteur uniquement
%~pI - étend %I en chemin d'accès uniquement
%~nI - étend %I en nom de fichier uniquement
%~xI - étend %I en extension de fichier uniquement
%~sI - chemin étendu contenant uniquement des noms courts
%~aI - étend %I en attributs du fichier
%~tI - étend %I en date/heure du fichier
%~zI - étend %I en taille du fichier
%~$PATH:I - parcourt les répertoires de la variable
d'environnement PATH et étend %I en nom du
premier fichier reconnu trouvé. Si le nom de la |
Ensuite tu fais un simple pour finaliser
if %%i EQU %OccurenceFichier% (move %%i NewRepDest
)
Attention à utiliser des variables local (avec des !) avec l'instruction setlocal ENABLEDELAYEDEXPANSION pour rafraichir la valeur des variables à l'intérieur de for.
Note la syntaxe %%i n'est valable QUE dans un script, en console il faut utiliser %i seulement
Partager