私は各オフィス(office_list.txt)にあるユーザーリスト(office_id_list_%YY_MM_DD%\%%
)を順番に調べて、新しいファイル日付(%3
)が見つかりました。以下のコードは動作しませんでしたので、errorlevelをエコーすることにし、常に-1073741510
(Windows 2003マシンで作業していたこと)であることが判明しました。最終的には、特定の日付以降に変更されていないユーザーのホームディレクトリ(オフィスで編成されたもの)を特定しようとしています。 どんな考えも大歓迎です。に埋め込まれたforfilesコマンドの戻りコードがわからない
for /f "tokens=1 delims= " %%i in (U:\sysmon\u_cleanup\office_list.txt) do (
if not exist u:\sysmon\u_cleanup\results\%%i mkdir u:\sysmon\u_cleanup\results\%%i
for /f "tokens=1 delims= " %%j in (U:\sysmon\u_cleanup\results\office_lists_%YY_MM_DD%\%%i_dir_list_%YY_MM_DD%_final.txt) do (
forfiles /P %1%%i\%%j /S /D +%3 /C "cmd /c if %errorlevel% == 0 echo ** Do not Archive - Found files modified after %3 > U:\sysmon\u_cleanup\results\%%i\%%j_%YY_MM_DD%.txt"
)
)
ありがとうございました。また働いた。コード美化のヒントありがとう。私はできるだけ合理化したいのですが、試してみるともっと多くの問題を紹介しているようです。遅れた展開やどのようにdosが変数を解釈するか(おそらく読み込み時間と実行時の議論)など、良い参考資料がありますか?いずれにせよ、ありがとう。 – jim
@jim:バッチがどのように動作するかを理解するための、初心者でも専門家でもある[Dostips.com](http://www.dostips.com) ://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/4095133#4095133) – jeb