for /f imbriqué

for /f imbriqué - Shell/Batch - Programmation

Marsh Posté le 18-02-2010 à 11:10:39    

je cherche (encore) à classer mes photos sur mon ordi.
 
je fais un fichier ou je stocke tous mes fichiers jpeg => jpeg.txt
à partir de là je récupére le mois et l'année de la création de la photo pour créer un repertoire MM_AAAA.
jusque la tout va bien.
après je veux faire un test pour savoir si le fichier que je vais copier n'existe pas déjà dans les répertoires. donc un if else.
pour tester je fais un for /f imbriqué car je n'arrive pas à avoir dans la meme boucle 2 parties différentes du fichier jpeg.txt (mais peut être est-ce mal conçu).
mais avant, pour m'assurer qu'il me renvoie bien dans la variable juste le nom du fichier, je fais un echo et là j'ai un la commande echo est désactivée....
 
voici le code :
 

Citation :

@echo off
cls
d:
for /r d:\tests\ %%i in (*.jpg) do echo %%~ftzsai >> D:\jpeg.txt
 
FOR /F "tokens=2-8 delims=/ " %%i in (D:\jpeg.txt) do (
if not exist d:\photos\%%j_%%k   md d:\photos\%%j_%%k
)
set /A cpt=0
setlocal enableDelayedExpansion
FOR /F "tokens=2-8 delims=/ " %%i in (D:\jpeg.txt) do (
    FOR /F "tokens=2-8 delims=\" %%i in (D:\jpeg.txt) do (
      set fic=%%l
      )
    echo %fic% >> d:\toto.txt)
REM echo d:\photos\%%j_%%k\!fic!
rem if not exist d:\photos\%%j_%%k\!fic! (xcopy %%n d:\photos\%%j_%%k /EXCLUDE:d:\exc.txt) else (set /A cpt=cpt+1)
)
echo le %date% a %time:~0,8% le nb de doublons est de %cpt% >> "D:\tests\doublons.txt"
 
echo le nombre de doublons est %cpt%
del d:\jpeg.txt /p


 
merci de vos lumières

Reply

Marsh Posté le 18-02-2010 à 11:10:39   

Reply

Marsh Posté le 24-02-2010 à 11:09:54    

Pas compris la question là..... On peut se la refaire plus tranquillement ?
 
Missi ^^
 
Sinon sous ninix y a le bon vieux test d'existence d'un fichier :
 
if [ -e ${fichier} ]
then
   echo "le fichier ${fichier} existe deja !"
else
   < là tu fais la copie de ton fichier source >
fi
 
Mais bon, c'est du KSH.... je connais quedale à la transposition vers Batch pour windows.


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Marsh Posté le 25-02-2010 à 10:58:32    

tu as raison, mon poste est clair comme du jus de chique.
en gros, ce que je veux faire c'est balayer tous mes disques (D:\, G:\, H:\ etc) ramener tous les jpg. ensuite les classer par mois de création.
ça je sais faire.
ce qui me pose pb, c'est que je n'arrive pas dans une même boucle à tester si mon fichier existe déjà dans mon répertoire de destination, et s'il n'existe pas le copier.

Reply

Marsh Posté le 03-03-2010 à 14:04:06    

Donc l'idée peut ressembler à ce que j'ai décrit je pense.
 
Mais en batch MS-DOS ^^ Faudrait décidément que je m'y mette à ce truc là !


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed