각 사무실 (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), 일괄 처리 방법 (전문가) 이해 [cmd가 한 행을 구문 분석하는 방법을 % vs %% var] (http : //stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/4095133#4095133) – jeb