Boucle et opération sur string en MS-DOS - Shell/Batch - Programmation
MarshPosté le 06-08-2014 à 10:56:38
Bonjour à tous,
J'utilise dans un fichier .bat le code suivant pour une boucle:
D: cd D:\InputFolder for /f %%i in ('dir TheName* /s /b ') do ( copy %%i D:\DestFolder\%%~ni.txt ) ==> Cette boucle fonctionne parfaitement pour copier les fichiers en changeant l'extension.
Cependant, je désire renommer mon fichier du nom de son sous-dossier. Par exemple si le dossier contient D:\InputFolder\aze\Thename123.txt et D:\InputFolder\qwert\Thename123.txt , les fichiers seraient aze.txt et qwert.txt. Je connais le chemin et je peux me servir d'une opération sur string "mid". Mais aucun de mes essais ne marche... Une idée? J'ai testé: %%i:3,5%%et un peu toutes les combinaisons de ca avec des % où je peux... Merci! Pierre PS: WIN XP & bientôt WIN 7
Marsh Posté le 06-08-2014 à 10:56:38
Bonjour à tous,
J'utilise dans un fichier .bat le code suivant pour une boucle:
D:
cd D:\InputFolder
for /f %%i in ('dir TheName* /s /b ') do (
copy %%i D:\DestFolder\%%~ni.txt
)
==> Cette boucle fonctionne parfaitement pour copier les fichiers en changeant l'extension.
Cependant, je désire renommer mon fichier du nom de son sous-dossier. Par exemple si le dossier contient
D:\InputFolder\aze\Thename123.txt et D:\InputFolder\qwert\Thename123.txt , les fichiers seraient aze.txt et qwert.txt.
Je connais le chemin et je peux me servir d'une opération sur string "mid". Mais aucun de mes essais ne marche... Une idée?
J'ai testé: %%i:3,5%%et un peu toutes les combinaisons de ca avec des % où je peux...
Merci!
Pierre
PS: WIN XP & bientôt WIN 7