これは単純なはずですが、行き詰まっています。テキスト ファイルから写真ファイル パスのリストをループして、それぞれを削除しています。問題は、del コマンドが失敗した場合 (ファイルが存在しないか、他のプログラムで使用されている場合に発生する可能性があります)、ログに通知が表示されないことです。
ところで-これはWindowsサーバー2008 R1 CMDです。
これが私のコードです:
@echo off
for /F %%A in (f:\deletePhotos\deletelist.txt) do (
echo del %%A /f >> f:\deletePhotos\log.txt 2>&1
)
ログのサンプルを次に示します。
del f:\photos\11\48\ALX10-9322-48.jpg /f
del f:\photos\11\48\ALX10-9692-48.jpg /f
del f:\photos\11\48\LKSR20-5910-48.jpg /f
del f:\photos\11\48\LKSR20-8639-48.jpg /f
del f:\photos\11\48\SEMN4030836-48.jpg /f
del f:\photos\11\48\SEMN4036515-48.jpg /f
ログ(上記)のファイルは存在しません(確認しました)。明らかに、ログに次のようなエラーを表示しようとしています。
Could Not Find f:\photos\11\48\ALX10-9322-48.jpg
しかし、代わりに、コマンド自体のエコーを受け取るだけです。助けてください!
*更新* 考え出した: 古き良き試行錯誤: ログ出力とリダイレクトをバット ファイル実行の外に移動する必要がありました。
このような:
f:\deletephotos>del.bat f:\deletePhotos\delete_11.txt >> f:\deletePhotos\log.txt 2>&1
それはトリックをしました。