Windows 작업 스케줄러로 배치 파일 실행


155

매일 배치 파일이 있습니다.이 코드는 다음과 같습니다.

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

그리고 Windows 7에서 작업 스케줄러를 사용하여 작업을 만들었습니다. 일괄 처리를 수동으로 실행하면 모든 것이 잘되지만 작업 스케줄러로 실행하려고하면 아무 일도 일어나지 않습니다.

내 행동은

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

UAC가 꺼져 있고 관리자입니다.

왜 이것이 작동하지 않는지 아십니까?


이 질문이 주제가 아닌지 확실하지 않지만 serverfault.com 에서 더 나은 답변을 얻을 수 있습니다 .
한스 올슨

감사합니다. 또한 serverfault에 게시하려고 시도합니다
Ruben

이것도 유용 할 수 있습니다 : serverfault.com/questions/734035/…
Ruben

답변:


286

나는 같은 문제에 직면했지만 배치 스크립트를 수정하지 않고도 다른 해결책을 찾았습니다.

내가 놓친 유일한 것은 '작업'설정- "(선택 사항)에서 시작"옵션입니다.

작업 속성-> 작업 탭-> 편집-> 다음과 같이 채우십시오.

  1. 동작 : 프로그램 시작
  2. 프로그램 / 스크립트 : 배치 스크립트 경로C:\Users\beruk\bodo.bat
  3. 인수 추가 (선택 사항) : <필요한 경우-스크립트에 따라>
  4. 시작 (선택 사항) : 배치 스크립트 위치의 전체 경로를 입력하십시오 C:\Users\beruk\( 예 : (시작에서 따옴표를 넣지 마십시오))

그런 다음 확인을 클릭하십시오

그것은 나를 위해 작동합니다. 행운을 빕니다!


8
원래 게시물이 상당히 오래되었다는 것을 알고 있습니다. 그러나이 게시물은이 문제에 대한 답변을 시도 할 때 Google 검색의 최상위 링크 중 하나였습니다. 결과를 공유하고 싶다고 생각합니다. 만일을 대비해서, 나 자신을 포함한 사람은 이것을 잊어 버리고 있습니다.
Ghazi

4
실제로 '시작 (선택 사항)'값이 필요하다고 생각하지 않습니다. 간단한 자체 포함 된 .bat 파일을 실행할 수 없습니다. 간단한 단계를 진행해 주셔서 감사합니다. 간단한 안내를 원하는 사용자에게 매우 유용합니다.
DCaugs

23
@DCaugs, Start In매개 변수를 설정 하지 않으면 예약 된 배치 파일이 전혀 실행되지 않습니다. (Windows 7)
Justin Skiles

2
이 솔루션은 저에게 효과적이지 않았습니다. @Arun Raja가 제공 한 답변은 정상적으로 작동했습니다.
Cagy79

7
@DCaugs Start in그것이 나를 위해 일한 주된 이유입니다.
구스타보

54

위의 방법 중 어느 것도 효과가 없었습니다. 튜토리얼에서 말한 대로이 방법을 시도해 보았습니다.

동작:

Start a program 

프로그램 / 스크립트 :

cmd

인수 추가 :

/c start "" "E:\Django-1.4.1\setup.bat"

Win7 Pro에서 나를 위해 일했습니다. 비밀번호가있는 계정이 있어야합니다 (비어있는 비밀번호는 좋지 않습니다)


1
동의합니다! 이전 솔루션 중 어느 것도 Windows Server 2008에서 효과가 없었습니다. 감사.
Cagy79

나는 당신에게 +2000을 줄 수 있기를 바랍니다. 나는 하루 종일 다른 접근법을 시도했지만 귀하의 솔루션을 제외하고는 아무 효과가 없었습니다. 배치 파일을 시작하여 다른 매개 변수로 다른 배치 파일을 10 번 시작했습니다. 콘솔에서 모든 것이 잘 작동했지만 작업 스케줄러는 동시에 4 개 이상의 프로세스를 열지 않았습니다. 이상하다 ... 당신의 기술로 모든 10 개의 프로세스가 시작되었다.
Icarus

이 방법은 저에게 효과적이었습니다. 그러나 스케줄러의 히스토리 탭에서 태스크는 cmd이지만 실행되는 .bat 파일이 아니기 때문에 태스크가 즉시 완료됩니다. 백업 작업 인 bat 파일은 2 ~ 3 시간 안에 종료되므로 상태를 알 수 없습니다.
azzurroverde

박쥐 파일 완성이 끝날 때 메일 알림을 유지해야 상태를 알릴 수 있습니다. 한 가지 방법입니다.
Arun Raja

이것은 @Ghazi의 정답에 언급 된대로 지정된 디렉토리에서 실행되도록 설정해야한다는 팁과 함께 작동하여 "가장 높은 권한으로 실행"도 선택해야합니다.
mheavers

43

박쥐 파일이 여전히 Windows 8 + Task Scheduler에서 작동하지 않는 사람들을 위해 , 많은 고통을 겪은 후 Ghazi의 답변에 추가하고 싶은 한 가지 :

1) 작업에서 "작업 만들기 "가 아닌 " 기본 작업 만들기"를 선택하십시오.

그것은 나를 위해 그것을했고, 잊지 말고 다른 문제는 :

  1. 선택 사항이라고 말하지만 배치 파일 의 시작 경로를 사용 하십시오.
  2. 필요한 경우 프로그램 시작> 프로그램 / 스크립트 항목 (예 : "C : \ my scripts \ runme.bat")에서 따옴표를 사용 하십시오.
  3. 그러나 시작 필드에 따옴표사용하지 마십시오 . (미쳤지 만 진실!)

이것은 명령 프롬프트를 트리거 할 필요없이 작동했습니다.

(죄송합니다. 담당자가 Ghazi의 의견에 기본 작업 팁을 추가하기에는 너무 낮습니다)


21

"시작" 에 견적이 없는지 확인하십시오 .


7

지금 일하고 있습니다. 이것이 내가 한 일입니다. 당신은 아마 그것이 작동하게하기 위해이 모든 단계가 필요하지 않을 것입니다.

  • 예약 된 작업의 계정 매개 변수를 확인하고 누군가 컴퓨터에 로그인했는지 여부에 따라 실행되도록 설정되어 있는지 확인하십시오.

  • 대부분의 권한 / 권리로 실행 확인

  • 먼저 전체 경로로 이동하십시오. cd C : \ inetpub \ wwwroot \ infoweb \ factuur \ cron

  • 배치 파일에 큰 따옴표를 사용하지 마십시오 (이유는 모르지만 도움이되는 것처럼 보입니다)

  • 최고 관리자 인 경우 명령 프롬프트에 'Net user administrator / active : yes'를 입력하고 로그 아웃 한 후 최고 관리자로 로그인하여 UAC를 끕니다.


2
유감스럽게도, 이것은 매우 형편없는 답변입니다. 올바른 답변이 허용되는 답변으로 선택되어 있는지 확인합니다.
jwize

5

"시작" 이 백 슬래시로 끝나지 않도록하십시오 .


1
어떤 OS 버전 또는 작업 유형 또는이 정보가 적용 가능한지 명확히 할 수 있습니까? 허용되는 답변에는 \가 포함되어 있으므로 일부 시스템에서 작동해야합니다. 작동하지 않는 곳은 어디입니까?
lessthanideal

이로 인해 Windows Server 2012에서 예약 된 'foo.cmd'작업이 해결되었습니다. 'Start in'을 'C : \ Foo \'로 설정하면 종료 코드 오류 0x8007001과 함께 작업이 실패했지만 'Start in'이 'C로 설정되었습니다. : \ Foo '작업이 제대로 실행되었습니다.
Aaron

5

전원 코드가없는 랩톱에서 실행 중이기 때문에 내 작업이 실행되지 않는 문제가 발생했습니다 ... 조건 탭에서 AC 전원이 연결되어 있지 않은 상태에서 작업이 실행되지 않도록 기본적으로 선택되어 있습니다.


3

Windows7 Pro에서 Arun의 솔루션이 저에게 효과적이라는 것을 알았습니다. "로그온 한 사용자 없음"에서도이 기능을 사용할 수있었습니다. 최고 권한을 사용하기로 선택했습니다.

과거의 경험을 바탕으로 비밀번호가있는 계정이 있어야합니다 (빈 비밀번호는 좋지 않습니다). 마법사를 완료 할 때 비밀번호를 입력하라는 메시지가 프로그램에 표시되지 않으면 다시 들어가서 비밀번호를 입력하십시오!

이 방법이 명확하지 않은 경우의 방법입니다

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 

3

나는 이것을 몇 시간 동안 엉망으로 만들었고 많은 다른 제안을 시도했다.

마침내 다음을 수행하여 작동하게했습니다.

작업 : 프로그램 시작

프로그램 / 스크립트 : C : \ scriptdir \ script.bat

인수 추가 (선택 사항) script.bat

시작 (선택 사항) : c : \ scriptdir

사용자가 로그인 한 경우에만 실행

최고의 특권으로 달리다

구성 : Windows Vista, Windows Server 2008


2

여기서 나머지가 모두 실패하면 작업을 실행하려는 사용자가 사용하려는 파일에 액세스 할 수 있는지 확인하십시오.

필자의 경우 계정에 액세스 할 수없는 C : \ Users \ Administrator \ Desktop에서 배치 파일을 실행하려고했습니다. C : \의 중립 위치로 옮기면 문제가 해결되었습니다.


1

작업을 수행하는 데 사용하는 사용자 계정을 확인하십시오. 기본 사용자가 아닌 다른 사용자로 작업을 실행할 수 있으며이 사용자에게는 추가 권한이 필요합니다. 또한 작업이 실행되었지만 배치 파일이 일부 사용자 응답을 대기하기 때문에 효과가 나타나지 않을 수 있으므로 프로세스가 실행되고 있으면 작업 관리자를 확인하십시오. 일단 웹 페이지의 svn 업데이트로 배치를 예약하면 svn이 서버 인증서 수락을 요청했기 때문에 프로세스가 중단됩니다.


1
  1. cmd / batch 파일에 큰 따옴표를 사용하지 마십시오
  2. C : \ Necessary_file \ Reqular_task \ QDE \ cmd_practice \ 에서 전체 경로로 이동하십시오 (선택 사항) .

여기에 이미지 설명을 입력하십시오



0

작업 스케줄러 기본 창의 실행 버튼을 사용하여 여러 변형을 테스트하여 마침내 올바른 설정을 찾았습니다. 이 두 옵션을 결합해야합니다.-사용자가 로그온 한 경우에만 실행-높은 권한으로 실행합니다. 다른 모든 변형이 실패했습니다. 그것은 항상 낭비되고 있지만 적어도 작동합니다. 운영체제 : WINDOWS 8 CORE (BASIC) VERSION


0

높은 권한으로 작업을 실행하십시오.

c : \ temp \와 같은 "폴더에서 시작"의 경로 끝에 \를 넣으십시오.

왜 그런지 모르겠지만 때로는 저에게 효과적입니다.


0

동작: Start a Program

프로그램 / 스크립트 : C:\Windows\System32\cmd.exe

인수 추가 : /k start "" "E:\scripts\example.bat"

exit배치 파일의 끝에 추가 하십시오.

을 선택하면 cmd 창이 표시되지 않습니다Run whether user is logged in or not . Run only when user is logged on창이 실제로 작동 하도록 선택해야합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.