파일이 다르며 일괄 처리를 사용하여 파일의 변경 사항을 확인하고 싶습니다. 이것은 내가 가지고있는 것입니다 :일괄 처리가 예상대로 작동하지 않는 특정 파일의 변경 사항 확인
@echo off
setlocal enableDelayedExpansion
set "list=test.txt test1.txt"
:loop
timeout -t 1 >nul
for %%j in (%list%) do (
REM Here only prints test.txt
echo %%j
for %%i in (%%j) do echo %%~ai|find "a">nul || goto :loop
echo file was changed %%j
attrib -a %%j
)
goto :loop
하나의 파일 만 사용하면 작동하지만 두 개 이상을 사용하지 마십시오. 그 생각은, echo file was changed %%j
은 올바른 파일 만 출력하며 둘 다 출력하지 않는다는 것입니다.
아이디어가 있으십니까?
편집 :
나는 몇 가지 변화 할 경우
@echo off
title LAN chat reader
setlocal enableDelayedExpansion
set "list=test.txt test1.txt"
:loop
timeout -t 1 >nul
for %%j in (%list%) do (
echo %%j
echo %%~aj|find "a">nul || goto :loop
echo file was changed %%j
attrib -a %%j
)
goto :loop
일을하지만, 내가 처음에 변경 한 후에 만 나에게 두 번째 파일의 변경 사항을 알려줍니다. 나는 그 문제가 반복문에 있다는 것을 이해할 수있다. 그래서 나는 혼란 스럽다.
당신은 루프의 탈옥 후에는 처리 할 수 없습니다 다른 파일. 왜 속성을 찾을 수 없을 때 루프에서 빠져 나오고 있습니까? – Squashman
테스트 용이지만 여전히 작동하지 않습니다. – robe007
또한 소문자 a를 찾고 있기 때문에 find 명령은 항상 false입니다. '/ I' 스위치를'FIND' 명령과 함께 사용하거나 문자를 대문자로 사용하십시오. – Squashman