boucle for ne retient que la dernière ligne du fichier [Résolu] - Shell/Batch - Programmation
Marsh Posté le 18-01-2010 à 09:36:41
normal car le for ne prend qu'une seul instruction par défaut comme dans la plupart des langages, pour en mettre plus il faut utiliser des blocs, ici avec des parenthèses:
Code :
|
Marsh Posté le 18-01-2010 à 22:41:58
je viens d'essayer je n'ai même plus la création du dossier que j'avais avec le code initial, peut-être ai oublié quelque chose il ne me semble pas pourtant...
je test avec powerbatch, je ne pense pas que ça ait un impact
Marsh Posté le 21-01-2010 à 22:03:49
Yes j'ai trouvé
en fait en déclarant datetmp j'écrasais systématiquement ma la valeur de ma variable avant de passer à la ligne suivante
il fallait simplement faire le mkdir sur les %%j et %%k comme ci dessous :
Citation : FOR /F "tokens=2-4 delims=/ " %%i in (d:\jpeg.txt) do ( |
Marsh Posté le 17-01-2010 à 18:53:42
bonjour, c'est un peu le bronx sur mon ordi, j'ai des photos un peu partout et je veux faire un batch pour les classer par mois de prise de vue.
j'ai fait un fichier et une boucle for pour récupérer le mois de la création de fichier.
or quand je lance la boucle, j'ai l'impression qu'il ne me retient que la dernière ligne de mon fichier. et je ne vois pas ou ça coince.
merci d'avance :
@echo off
cls
for /r d:\ %%i in (*.jpg) do echo %%~ftzai >> d:\jpeg.txt
FOR /F "tokens=2-4 delims=/ " %%i in (d:\jpeg.txt) do set datetmp=%%j_%%k
if not exist d:\photos\%datetmp% md d:\photos\%datetmp%
il ne me crée que un seul sous répertoire qui correspond à la date de la dernière ligne du fichier généré (jpeg.txt)
Message édité par MonGhost le 21-01-2010 à 22:45:41