0

バッチ ファイル内のこの for ループで頭痛の種です。

基本的に、ファイルが既に処理されているかどうかを確認するために、アーカイブ フォルダーを検索しています。その場合は、ファイルを重複フォルダーに移動します。スクリプトで上記の日付変数を設定しましたが、正常に動作します。

 for %%f in (%toLoadLocation%\*.*) DO (
 if exist %archiveLocation%\%%~nxf (
 IF NOT EXIST "%archiveLocation%\Duplicates" mkdir "%archiveLocation%\Duplicates"
 IF NOT EXIST "%archiveLocation%\Duplicates\%localYYYY%" mkdir "%archiveLocation%\Duplicates\%localYYYY%"
 IF NOT EXIST "%archiveLocation%\Duplicates\%localYYYY%\%localMM%" mkdir "%archiveLocation%\Duplicates\%localYYYY%\%localMM%"
 copy %%f "%archiveLocation%\Duplicates\%localYYYY%\%localMM%"
 echo %localDate% %localTime%       Duplicate claims file: %%f File moved to archive     >> "%logLocation%\Error.log"
 )

私はここで愚かなことをしていますか?エラーは発生しません。これを実行すると、スクリプトが爆発します(メッセージをキャッチすることを望んで、この前後に一時停止コマンドがありますが、何もありません)

どんな助けでも大歓迎です。

みんなありがとう!

4

2 に答える 2

1

これを試して:

for %%f in ("%toLoadLocation%\*.*") DO if exist "%archiveLocation%\%%~nxf" (
    IF NOT EXIST "%archiveLocation%\Duplicates" mkdir "%archiveLocation%\Duplicates"
    IF NOT EXIST "%archiveLocation%\Duplicates\%localYYYY%" mkdir "%archiveLocation%\Duplicates\%localYYYY%"
    IF NOT EXIST "%archiveLocation%\Duplicates\%localYYYY%\%localMM%" mkdir "%archiveLocation%\Duplicates\%localYYYY%\%localMM%"
    copy "%%~f" "%archiveLocation%\Duplicates\%localYYYY%\%localMM%"
    echo %localDate% %localTime%        Duplicate claims file: %%f File moved to archive     >> "%logLocation%\Error.log"
)
于 2013-08-05T21:02:32.747 に答える