Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1694 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] boucle for ne retient que la dernière ligne du fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] boucle for ne retient que la dernière ligne du fichier

n°1958450
MonGhost
Ite missa est
Posté le 17-01-2010 à 18:53:42  profilanswer
 

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
mood
Publicité
Posté le 17-01-2010 à 18:53:42  profilanswer
 

n°1958481
pataluc
Posté le 18-01-2010 à 09:36:41  profilanswer
 

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 :
  1. FOR /F "tokens=2-4 delims=/ " %%i in (d:\jpeg.txt) do (
  2.     set datetmp=%%j_%%k
  3.     if not exist d:\photos\%datetmp%  md d:\photos\%datetmp%
  4. )

n°1958506
MonGhost
Ite missa est
Posté le 18-01-2010 à 11:23:39  profilanswer
 

Merci beaucoup pataluc, je teste ça ce soir.

n°1958620
MonGhost
Ite missa est
Posté le 18-01-2010 à 22:41:58  profilanswer
 

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

n°1959524
MonGhost
Ite missa est
Posté le 21-01-2010 à 21:48:12  profilanswer
 

Personne ?
snif...

n°1959526
MonGhost
Ite missa est
Posté le 21-01-2010 à 22:03:49  profilanswer
 

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 (
if not exist d:\photos\%%j_%%k   md d:\photos\%%j_%%k)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] boucle for ne retient que la dernière ligne du fichier

 

Sujets relatifs
suppression structure dans fichier[Résolu] [VBA] Multiplication fausse
[C] Ecriture dans un fichier[SHELL] Connexion base DB2 + lancement requête dans fichier .sql
[RESOLU] Problème d'affichage d'une deuxième fenêtrerecuperer la taille d'un fichier distant
Signature et Cryptage fichier XML avec php[Résolu] [Powershell] [LDAP] un Search sur une sous-OU ?
Plus de sujets relatifs à : [Résolu] boucle for ne retient que la dernière ligne du fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR