
예: 매일 오전 6시에 예약된 작업이 있습니다(로그인한 경우에만). 내 컴퓨터가 오전 9시까지 밤새도록 절전/최대 절전 모드로 유지되는 경우, 깨어나면 오전 6시 일정을 놓쳤더라도 작업이 실행됩니다. 작업이 실행되는 것이 중요하기 때문에 그런 일이 발생하는 것을 원하지 않습니다.오직오전 6시에.
"예정된 시작 시간을 놓친 후 가능한 한 빨리 작업 실행" 설정을 선택 취소하면 이를 방지할 수 있을 것이라고 생각했지만 그렇지 않습니다. 컴퓨터가 예정된 시간에 켜져 있는 경우에만 작업이 실행되도록(그리고 컴퓨터가 놓친 경우 다음 예정된 시간까지 기다리도록) 시도해야 하는 또 다른 설정이 있습니까?
내 설정의 예:
답변1
해결 방법을 찾았습니다. 작업에서 .bat
스크립트를 실행하도록 하세요. 그러면 컴퓨터가 절전 모드가 아닌 것을 발견하면 명령이 실행됩니다. 내가 사용하는 스크립트는 다음과 같습니다.
@echo off
for /f "delims=" %%t in ('time /t') do if "%%t"=="%1" %~2
이 스크립트는 두 개의 매개변수를 사용합니다. 첫 번째는 명령이 호출될 시간이고, 두 번째는 따옴표로 묶인 명령 자체입니다 script.bat 21:40 "echo x"
.
설명
Bash와 달리 Batch에서는 명령 출력을 변수에 직접 저장하는 것이 불가능하지만한 줄씩 출력 줄을 반복합니다.. 그것이 나의 두 번째 줄이 하는 일입니다. time /t
의 출력 은 한 줄 이므로
스크립트가 호출되기를 원할 때 호출된 경우 스크립트가 명령(두 번째 매개변수로 전달됨)을 실행하는 반복은 단 한 번뿐입니다. 스크립트 실행이 지연되면 이 조건이 충족되지 않습니다.
%~2
대신에 를 사용합니다 %2
. 왜냐하면 %~2
명령 주위에 따옴표를 삭제하므로
전달은 인수 없이 프로그램을 호출하는 대신 인수로 "echo x"
실행되고 인쇄 됩니다 .echo
x
x
echo x
단점
요청 시 작업을 시작하면 아무 작업도 수행되지 않습니다. 필드를 선택 취소하는 것이 좋습니다.요청 시 작업이 실행되도록 허용에서설정탭, 혼동하지 마세요.
작업 실행 시간을 수정하려면 작업이 계속 작동하도록 인수를 수정해야 합니다.
time /t
의 출력은 지역 설정에 따라 다릅니다.
답변2
컴퓨터가 유휴 상태일 때 예약된 작업을 실행하려면 "다음 기간 동안 유휴 상태가 될 때까지 기다립니다." 그리고 아마도 체크 표시 "컴퓨터가 더 이상 유휴 상태가 되지 않으면 중지".
- 컴퓨터가 유휴 상태일 때 실행할 작업을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
- 조건 탭의 유휴 시간에서 컴퓨터가 최소한 유휴 상태인 경우에만 작업 시작 확인란을 선택합니다.
- 작업이 실행되기 전에 컴퓨터가 유휴 상태여야 하는 시간(분)을 입력합니다.
참고: 컴퓨터가 유휴 상태가 되면 작업 중지 확인란을 선택하여 컴퓨터가 사용 중인 경우 모든 작업을 중지하도록 지정할 수도 있습니다.
유휴 시간을 이해하려면 다음을 따르십시오.링크...
답변3
컴퓨터를 절전/최대 절전 모드로 두었으므로 기술적으로는 여전히 "로그온"(그냥 자리를 비운 상태) 상태입니다. 따라서 대안으로 조건에서 "이 작업을 실행하기 위해 컴퓨터를 깨우도록" 작업을 설정할 수 있으며, 이 작업은 항상 오전 6시에 실행됩니다. (작업이 실행될 때 콘솔에 있어야 한다는 뜻이 아닌 경우)