2012-06-04 5 views
2

로그온 할 때 동일한 디렉터리에있는 파일에 의존하는 프로그램을 실행하려고합니다. 명령 행에서 수동으로 프로그램을 실행하면 cd'd가 실행되며 모든 것이 제대로 실행됩니다. 그러나 프로그램을 실행하는 작업을 예약하면 필요한 파일을 찾지 못한다고 불평하는 프로그램에서 오류가 발생합니다. 그래서 내 질문은 : /) : 1. 예약 된 작업의 작업 디렉토리가 프로그램의 위치입니까? 2.) 그렇지 않다면 어떻게 작업 디렉토리를 프로그램의 위치로 설정하겠습니까? 여기 schtasks : 작업 디렉토리를 설정 하시겠습니까?

내가 일정 내 작업을 사용하고있는 코드입니다

"$의 MyLocation"나는 내 프로그램의 디렉토리를 참조하도록 설정된 파워 쉘 변수입니다
SCHTASKS /Create /TN "Test" /TR $MyLocation\Test.exe /sc onlogon /RL Highest 

.

+0

이 다른 게시물은 같습니다 http://stackoverflow.com/questions/447774/specifying-the-running-directory-for-scheduled-tasks-using-schtasks-exe –

+0

나는 이것을 처음 설정 한 예약 된 작업에 대한 cmd 파일을 작성하여이 문제를 해결했습니다. 작업 디렉토리를 원했고 스크립트를 실행했습니다. – Gisli

+0

@ChrisN : 그 게시물을 보았지만 프로그램을 수행하기를 원하는 방식을 제공하지 않습니다./V1 스위치를 사용하면 시스템 계정에서 작동 할 수 없습니다. 나는 그 코드를 시도했지만 작동하지 않았다. 나는 내가받은 오류를 제공 할 수는 없지만 나중에 다시 시도하고 게시 할 수는 있습니다. – arynhard

답변

0

저는 배치 파일을 사용하여이 문제를 해결했습니다. 배치 파일에서 사용할 수있는 깔끔한 트릭이 있습니다.이 배치 파일은 배치 파일이있는 디렉토리를 제공합니다. 따라서 원하는 응용 프로그램을 매우 쉽게 실행할 수 있습니다. 다음 내용으로 배치 파일을 만들고 앱 옆의 디렉토리에 놓은 다음/TR 인수 값으로 경로를 설정하십시오. %~dp0 어쨌든 역 슬래시 포함로

%~dp0\Test.exe 

엄밀히 말하면, 백 슬래시가 필요하지 않다. 나는 그것이 배치 파일을 좀 더 읽기 쉽도록 만든다고 생각한다. 스크립트를 실행하고이 같은 매개 변수 뭔가 작업 O를 설정하는 것처럼에서 $의 MyLocation를 보낼 경우

+0

Powershell의 "pwd"는 현재 디렉터리를 나열합니다. – rud3y

+1

@ rud3y 예, 그러나 현재 디렉토리는 스크립트가 실행중인 디렉토리가 아닐 수 있습니다. 예를 들어'cd C : \ Foo','. C : \ Foo \ Bar \ Baz \ Quux.ps1'를 입력하십시오. 이 경우'% ~ dp0'는 "C : \ Foo \ Bar \ Baz"이고, $ PWD는 "C : \ Foo"가됩니다. –

+0

좋은 전화 :) :) – rud3y

0

:

$cmdFile = "$MyLocation\Test.cmd" 
New-Item $cmdFile -type file 
"cd $MyLocation" >> $cmdFile 
"powershell -command '& {$($MyLocation)\Test.exe}'" >> $cmdFile 
SCHTASKS /Create /TN "Test" /TR $cmdFile /sc onlogon /RL Highest 

Gísli을 그것이 당신의 질문에 대답해야처럼

관련 문제