2009-09-16 8 views
0

Voici l'extrait. %% X est le chemin source. Je veux remplacer le chemin source par le chemin de destination ou simplement supprimer le chemin source.Copie de fichier par lots le fichier de destination existe-t-il déjà?

% _DEST% \ %% X ne fonctionne pas dans cet extrait ... où il vérifie si le fichier de destination existe déjà. Quelle est la bonne façon de vérifier si le fichier de destination existe?

call :LOGMSG Copying new jpeg image files 
for %%X in (%_SRC%\*.jpeg) do if not exist %_DEST%\%%X (
    xcopy %_SRC%\%%X %_DEST% /defy >>"%run_log%" 
    call sd.exe add %%X >>"%run_log%" 
) 
+0

Vous avez une faute de frappe dans le titre. S'il vous plaît changer "Bath" à "Batch" –

Répondre

1

Utilisez ~n dans la variable pour se débarrasser de la partie du chemin. En outre, vous n'avez pas besoin %_SRC\% dans la ligne xcopy:

call :LOGMSG Copying new jpeg image files 
for %%X in (%_SRC%\*.jpeg) do if not exist %_DEST%\%%~nX (
    xcopy %%X %_DEST% /defy >>"%run_log%" 
    call sd.exe add %%X >>"%run_log%" 
) 

Découvrez for /? pour explication et d'autres goodies.

Questions connexes