나는 매일 같은 시간에 PHP 스크립트를 실행하는 간단한 .bat 파일을 가지고있다.
@echo ON
php C:\path\to\script.php argument
pause
.bat 파일을 두 번 누르면 잘 실행됩니다. 매일 실행하도록 예약 된 작업을 설정했지만 백그라운드에서 실행됩니다. 아무 곳에서나 명령 행 창 없음. 나는 그것이 실제로 달리고있는 것을 볼 수있다.
나는이 작업이 실행되는 동안 그것을 모니터 할 수 있기를 정말로 원합니다.
포어 그라운드의 명령 줄 창에서 강제로이 명령을 실행하려면 어떻게해야합니까?
Windows 7 환경.
답변
작업을 예약 할 때 해당 시간에 로그인 할 사용자로 실행하도록 설정하면 포 그라운드에서 실행해야합니다. 일반 탭 아래에 “숨김”확인란이 있습니다. 확인 표시가 해제되어 있는지 확인하십시오.
답변
StackOverflow에서 실제로이 대답을 발견했습니다.
예약 된 작업 속성의 ‘작업’탭에서 작업을 선택하고 수정을 클릭하십시오.
프로그램 / 스크립트 필드에서 이것을 cmd로 변경하십시오.
인수 추가 필드에서이를 ‘/ k “C : \ path \ to \ job.bat”로 변경하십시오.
이것은 나를 위해 일했습니다.
답변
schtasks 명령은 사용자와 백그라운드 / 포 그라운드를 처리하는 방법에서 매우 특별합니다. 필자는 커맨드 라인에서 예약 된 작업을 생성하고 관리하는 것을 선호합니다 (GUI보다 훨씬 덜 번거롭고 원하는대로 정확하게 조정할 수 있습니다). 그러나 전경 / 배경은 특정 문제입니다. 예제와 함께 작동하는 방법을 보여줍니다.
다음 작업은 30 분마다 실행됩니다 (단, 백그라운드에서만 / ru 및 / rp를 사용하면이 작업이 강제로 수행됩니다).
schtasks / create / sc 분 / mo 30 / tn “메모”/ tr notepad.exe / ru / rp
그러나 다음 명령을 실행하면 자격 증명을 사용하여 포 그라운드에서 실행됩니다 (작업을 모니터하려는 경우 의지 다음과 같이 할 수 있어야 함) :
schtasks / create / sc 분 / mo 30 / tn “메모”/ tr notepad.exe
이것은 처음 보았을 때 상당히 이상하지만, 일단 규칙을 알게되면 간단합니다. GUI에서 이상하게 말하면 포 그라운드에서 작동하려면 현재 사용자로 사용자 이름 / 암호를 설정해야합니다. 반대의 경우입니다.
몇 가지 예 :
schtasks / create / sc 분 / 미주 30 / tn “메모”/ tr “php C : \ path \ to script.php argument”
schtasks / create / sc 분 / 월 30 / tn “메모”/ tr “시작 / 분 C : \ 사용자 \ 존 \ MyPHPscript.bat”
그런 다음 MyPHPscript.bat에 넣습니다. php C : \ path \ to \ script.php 인수
특정 작업을 올바르게 보려면 (사용 된 명령 줄 표시)
schtasks / query / tn “메모”/ v / fo 목록