Пакетная копия файла. Файл назначения уже существует?
-
07-07-2019 - |
Вопрос
Вот фрагмент. %% X является исходным путем. Я хочу заменить исходный путь на конечный путь или просто удалить исходный путь.
% _ DEST% \ %% X не работает в этом фрагменте ..., где он проверяет, существует ли уже файл назначения. Как правильно проверить, существует ли файл назначения?
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%"
)
Решение
Используйте ~ n
в переменной, чтобы избавиться от части пути. Кроме того, вам не нужно % _ SRC \%
в строке 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%"
)
Проверьте для /?
для объяснения и других полезностей.
Не связан с StackOverflow