1

あるファイルの最終変更日を調べて、他のいくつかのファイルの最終変更日と比較する簡単なバッチスクリプトを作成しようとしています。それが他の最終変更日よりも大きい場合は、ファイルをそれらのディレクトリにコピーします。これは私がこれまでに持っているものです:

@echo off
for %%a in ([srcFile]) do set lastmodSrc=%%~ta
echo lastmodSrc
for %%a in ([dstFile1]) do set lastmodDst1=%%~ta
for %%a in ([dstFile2]) do set lastmodDst2=%%~ta
for %%a in ([dstFile3]) do set lastmodDst3=%%~ta
for %%a in ([dstFile4]) do set lastmodDst4=%%~ta

if lastmodSrc GTR lastmodDst1 xcopy [srcFile] [dstDir1] /-y
if lastmodSrc GTR lastmodDst2 xcopy [srcFile] [dstDir2] /-y
if lastmodSrc GTR lastmodDst3 xcopy [srcFile] [dstDir3] /-y
if lastmodSrc GTR lastmodDst4 xcopy [srcFile] [dstDir4] /-y

pause

角かっこはフルパス名です。現在実行しているのは、lastmodSrcとlastmodDstを単なる文字列として保存することです(少なくとも、それが実行しているように見えます)。したがって、実際にはmodの日付をチェックしていません。私はWindowsでのバッチスクリプトがひどく不十分で、ここの誰かが助けてくれるかもしれないと考えました。前もって感謝します!

4

1 に答える 1

1

(私が目標を理解していると仮定して)もっと簡単かもしれない別のアプローチは、/dxcopyのオプションを使用することです。それが(日付なしで)指定されている場合、ソースが新しい場合にのみファイルがコピーされます。

xcopy /d srcfile dstfile
于 2011-09-22T16:02:28.753 に答える