forfiles를 사용하여 폴더를 확인하여 업데이트 된 .xlsx 파일 (1 일 이내)을 확인한 다음 업데이트 된 파일의 존재 여부에 따라 다른 bat 파일을 실행하려고합니다.파일 루프/오류 수준 문제
처음에는이 작업을 수행하는 스크립트가 있었지만 언젠가는 여러 개의 새로운 .xlsx 파일이 있었기 때문에 스크립트는 "반복되어"success.bat 파일을 여러 번 실행합니다.
업데이트 된 파일이 없으면 cmd가 오류와 함께 종료되므로 fail.bat 파일을 실행하기 위해이 파일을 사용했습니다.
이것은 내가 지금 무엇을 가지고 :
@echo on
set found=0
forfiles /p C:\ /m *.xlsx /d 0 /c "cmd /k set found=1"
if /i %found%==1 (
Call Success.bat
) else (
if /i %found%==0 (
Call Fail.bat
)
PAUSE
지금이 즉이 루프 문제를 제거한다 .. 파일이 업데이트 될 때를 위해 잘 작동합니다.
하지만 지금 cmd를 더 업데이트 된 파일이 발견되지 않으면 종료하고 더 이상 나를 위해 작동하지 않는 것
if ERRORLEVEL 1 call fail.bat
를 사용하여 함께 문제를 가지고는 ... 나는이 경우 그냥 좋은 해요 오류 메시지가 표시되지 않습니다 .BAT 파일
간단한 하나의 라이너로 단순화하지 않는 이유는 다음과 같습니다. forfiles ... && call success.bat || call fail.bat'을 호출하십시오. 또한'/ d 0' 옵션을 잊어 버렸습니다. – dbenham
시도해 보니 "/ d 0"이 추가되어 Fail.bat를 실행하지만 파일을 찾으면 실행되지 않습니다 Success.bat – Slingy
@dbenham 고마워요, 제 대답을 편집했습니다. 그것은 훨씬 좋네요. – unclemeat