構文を正しくしようとしてきましたが、問題があります。構文が正しくないだけでなく、このスクリプトで次のことを行いたいと考えています。
- ネットワーク内のすべてのドライブで特定の条件のすべてのファイルを検索します
- ファイルが更新されたファイル (または新しいファイル) であるかどうかを確認します。
- 新しいファイルまたは更新されたファイルでない場合は、新しいファイルを見つけて置き換えます
また!これを6時間ごとなどのスケジュールで機能させることができれば...それは本当に助かります
このコードは 1 回動作するようになりましたが、数回変更して上書き保存しました。
@echo off
SETLOCAL
cls
:locate_old
for /d /r Z:\ %%a in (*) do if exist "%%~fa\old.file" set "oldFile=%%~fa\old.file"
if not defined oldFile (
echo old file not found...
) else (
echo old file found&GOTO oldFileCheck
)
:oldFileCheck
find "old file text" "%oldFile%" && echo old file is already updated || GOTO findNewFile
:findNewFile
for /d /r Z:\ %%a in (*) do if exist "%%~fa\new.file" set "newFile=%%~fa\new.file"
if not defined newFile (
echo no new file detected...
) else (
echo new file located...&GOTO fileSwap
)
:fileSwap
copy /y "%newFile%" "%oldFile%" && echo file updated || file not updated