해결 방법을 찾았습니다. 작업이 .bat
스크립트를 시작하도록 설정하면 컴퓨터가 잠들지 않은 것을 발견하면 명령이 시작됩니다. 내가 사용하는 스크립트는 다음과 같습니다
@echo off
for /f "delims=" %%t in ('time /t') do if "%%t"=="%1" %~2
이 스크립트는 두 가지 매개 변수를 사용합니다. 첫 번째는 명령을 호출 할 시간이고 두 번째는 명령 자체를 따옴표로 묶습니다 script.bat 21:40 "echo x"
.
설명
Bash와 달리 Batch에서는 명령 출력을 변수에 직접 저장할 수 없지만 line 다음에 출력 줄을 반복 할 수 있습니다 . 그게 내 두 번째 줄입니다. 때문에 time /t
의 출력이
한 줄이 스크립트는 당신이 그것을 호출 할 싶어 할 때 스크립트가 호출 된 경우 (두 번째 매개 변수로 전달) 명령을 실행하는 하나의 반복이있다; 스크립트 실행이 지연되면이 조건이 충족되지 않습니다.
내가 사용하는 %~2
대신에 %2
있기 때문에, %~2
폐기를 명령 주위에 인용
이 통과가되도록 "echo x"
실행됩니다 echo
인수 x
, 인쇄 x
,
대신 프로그램을 호출하는 echo x
인수없이.
단점
요청시 작업을 시작해도 아무런 효과가 없습니다 . 설정 탭 에서 작업을 요청시 실행하도록 허용 필드를 선택 해제하는 것이 좋습니다 .
작업 실행 시간을 수정하려면 작업을 계속 유지하기 위해 인수를 수정해야합니다.
time /t
의 출력은 지역 설정에 따라 다릅니다.