Variable étendue et compteur qui ne s'incrémente pas

Variable étendue et compteur qui ne s'incrémente pas - Shell/Batch - Programmation

Marsh Posté le 13-02-2010 à 10:40:26    

bonjour,
 
je cherche à faire un classement des mes photos.
et pour m'assurer que je n'ai pas de doublons, je fais un if else dans un for.
malheureusement ma variable ne s'incrémente pas... :cry:  
je ne dois pas avoir la bonne syntaxe...

Citation :

@echo off
cls
d:
for /r d:\tests\ %%i in (*.jpg) do echo %%~ftzsai >> D:\jpeg.txt
setlocal enableDelayedExpansion
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
FOR /F "tokens=2-8 delims=/ " %%i in (D:\jpeg.txt) do (
if not exist d:\photos\%%j_%%k\%%n (xcopy /y /EXCLUDE:d:\exc.txt %%n d:\photos\%%j_%%k) else (set /A cpt+=1)

)
echo le %date% a %time% le nb de doublons est de %cpt% >> "D:\tests\doublons.txt"
 
echo le nombre de doublons est %cpt%
del d:\jpeg.txt /p


 
et question subsidiaire avec pour celui qui répond un mug gratuit avec ma photo :D :
quand je prend  la variable étendue :

Citation :


for /r d:\tests\ %%i in (*.jpg) do echo %%~ftzsai >> D:\jpeg.txt


il me remonte la date de modification de fichier pas la date de création....
 
merci de vos lumières...


Message édité par MonGhost le 13-02-2010 à 16:05:14
Reply

Marsh Posté le 13-02-2010 à 10:40:26   

Reply

Marsh Posté le 13-02-2010 à 16:02:56    

en fait j'ai trouvé pour la première partie, je n'ai pas besoin de répéter le chemin que je crée :
 
if not exist %%n (xcopy /y /EXCLUDE:d:\exc.txt %%n d:\photos\%%j_%%k) else (set /A cpt+=1)  
 
par contre pour la deuxième question je suis preneur d'info, peut-être faut il que je code différemment pour récupérer la date de création de fichier...

Reply

Marsh Posté le 15-02-2010 à 17:49:39    

Personne ?
je sèche et je me prends bien la tête....

 

voilà ou j'en suis :

 


Citation :

@echo off
cls
d:
for /r d:\tests\ %%i in (*.jpg) do echo %%~ftzsai >> D:\jpeg.txt
setlocal enableDelayedExpansion
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
FOR /F "tokens=2-8 delims=/ " %%i in (D:\jpeg.txt) do (
rem if exist %%n (set /A cpt=cpt+) else  (xcopy  d:\photos\%%j_%%k /EXCLUDE:d:\exc.txt)
if not exist d:\photos\%%j_%%k\%%n (xcopy  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

.


Message édité par MonGhost le 15-02-2010 à 19:35:32
Reply

Marsh Posté le 16-02-2010 à 10:22:54    

en fait quand je fais le test de l'existence du fichier dans le repertoire de destination la variable %%n renvoie :
 
d:\photos\01_2009\d:\tests\DCEMBR~1\ORIGIN~1\CIMG1246.JPG
 
la question est de savoir maintenant comment récupérer uniquement le nom de fichier et non le chemin complet dans la variable...

Reply

Sujets relatifs:

Leave a Replay

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