バッチファイルのコピー先のファイルは既に存在しますか?

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 を使用して、パス部分を取り除きます。また、xcopy行に%_ SRC \%は必要ありません:

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

説明およびその他の利点については、 for /?をご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top