Пакетная копия файла. Файл назначения уже существует?

StackOverflow https://stackoverflow.com/questions/1434928

  •  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%"
)

Проверьте для /? для объяснения и других полезностей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top