2013-05-23 2 views
3

매개 변수가있는 PowerShell 스크립트를 실행할 PowerShell 스크립트에서 작업 스케줄러에 작업을 추가하려고합니다. 파일 경로에서PowerShell 추가 매개 변수로 PowerShell 스크립트를 실행하는 작업

공간은 전체 명령을 둘러싼 필요한 따옴표와 충돌하고, Schtasks는이 "내가 제대로 캡슐화 할 수 없습니다하는 '변환

$command = "PowerShell \`"& 'C:\ProgramFiles (x86)\MyDir\MyScript.ps1' $myStringParam $myBooleanParam\'"" 
Write-Host $command # This outputs: PowerShell \"& 'C:\Program Files (x86)\MyDir\MyScript.ps1' Cat 0\" 
SCHTASKS /Create /TN "MyTask" /TR "$command" /SC DAILY /ST 01:30:00 /RL Highest /EC ScriptEvents /RU SYSTEM 

하지만 작업 스케줄러는 작업을 보여줍니다.

PowerShell "& "C:\Program Files (x86)\MyDir\MyScript.ps1" Cat 0" 

"및"은 항상 여기로 전환되기 때문에 서로 취소되므로 작업이 실패합니다.

답변

3

PowerShell 스크립트에서

$command = "PowerShell \`"& \\\`"C:\ProgramFiles (x86)\MyDir\MyScript.ps1\\\`" $myStringParam $myBooleanParam\'"" 

그래서 작업 스케줄러

PowerShell "& \"C:\Program Files (x86)\MyDir\MyScript.ps1\" Cat 0" 
을 보여줍니다
3

실행하고 단지

powershell.exe -File "C:\Program Files (x86)\MyDir\MyScript.ps1" Cat 0 

UPDATE

부울 끝에 스크립트의 매개 변수를 추가하는 스크립트를 지정하여 powershell.exe의 - 파일 매개 변수를 사용하여 시도하고 스위치 매개 변수가 보인다 problemwith-File입니다. 이 작동합니다. "내부 따옴표로`\\\와 '스왑했다"\ 사용하여 해결

powershell.exe "C:\Program Files (x86)\MyDir\MyScript.ps1" Cat 0 
+0

많은 것을 시도 PowerShell은 0 (또는 $ false)을 문자열에서 부울 값으로 변환 할 수 없으므로 작동하지 않습니다. – Brent

+0

@ 브렌트 : 알려진 문제인 것처럼 보입니다. 수정 된 내용으로 내 대답 업데이트 –

0

사용 PowerShell 용 - 명령 매개 변수 :

뭐 t 당신이 작업 sceulder없이 PowerShell에서 실행됩니다 : 당신이 작업 sceduler 제공 무엇

C:\Scripts\mypsscript.ps1 -parameter 'nice value' 

:

을 programm 실행 : 파워 쉘

인수 :

-Command "& C:\Scripts\mypsscript.ps1 -parameter 'nice value'"