je n'arrive pas à tester l'existence d'un fichier

je n'arrive pas à tester l'existence d'un fichier - Shell/Batch - Programmation

Marsh Posté le 26-05-2010 à 08:24:21    

bonjour,
 
je souhaite transférer des fichiers disséminés un peu partout sur mon DD, dans un seul répertoire.
mais pour ne pas écraser d'éventuels doublons, je veux tester si le fichier existe avant de le copier.
 
et avec mon "if not exist" ça ne marche pas...
 

Citation :

@echo off
cls
d:
 
set cptd=0
set ori=D:\tests
set dest=D:\copie_photos
 
if not exist %dest%\doublons md %dest%\doublons
for /r %ori% %%i in (*.jpg) do (
if not exist %dest%\%%i xcopy %dest%\%%i
set %cptd%=cptd+1
)
 
echo le nombre de doublons est %cptd%


 
il me copie aussi les fichiers en doublons en me demandant si je veux les écraser... or le "if not exist" devrait suffire à ne pas poursuivre la boucle.
 
si quelqu'un a des idées.
 
merci


Message édité par MonGhost le 26-05-2010 à 08:24:48
Reply

Marsh Posté le 26-05-2010 à 08:24:21   

Reply

Marsh Posté le 08-06-2010 à 00:09:14    

ça y est j'ai trouvé...
mauvais envoi de parametres avec une syntaxe inversée...

Citation :

@echo off
cls
d:
set cptsd=0
set cptd=0
set ori=D:\tests
set dest=D:\copie_photos
set destdoub=D:\copie_photos\doublons
 
if not exist %dest%\doublons md %dest%\doublons
for /r %ori% %%i in (*.jpg) do (
if not exist %dest%\%%~nxi xcopy %%i %dest%
set /A cptsd=cptsd+1
)


Par contre je voudrai trouver la syntaxe du if else, car si j'ai des doublons, je voudrai les récupérer...
j'arrive pas à comprendre dans quel cas on retourne à la ligne ou pas...


Message édité par MonGhost le 08-06-2010 à 00:24:58
Reply

Marsh Posté le 08-06-2010 à 23:20:36    

c'est pas que je me sens un peu seul sur mon post, mais quand même...^^
 
est-ce que quelqu'un sait comment contourner le problème des espaces dans les noms de dossiers quand un For /R retourne la variable ?

Reply

Marsh Posté le 09-06-2010 à 12:43:51    

Pourquoi ne pas mettre le nom du fichier entre guillemets:

Code :
  1. if not exist "%dest%\%%~nxi" xcopy "%%i" %dest%


 
Jean-Pierre.

Reply

Sujets relatifs:

Leave a Replay

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