2013-05-23 3 views
3

Я пытаюсь добавить задачу в планировщик заданий из сценария PowerShell, который будет запускать сценарий PowerShell с параметрами.PowerShell add Task для запуска скрипта 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 

но Task Scheduler показывает действия, как:.

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

«и» отменяют друг друга, потому что «здесь всегда переключается», поэтому задача не выполняется.

ответ

3

решаемые его с помощью \ в сценарии PowerShell

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

Так Task Scheduler показывает

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

Попробуйте с помощью -File параметра powershell.exe, чтобы указать скрипт для запуска и просто добавить параметры сценария в конце

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

UPDATE

булевой и переключите параметры кажутся чтобы быть problemwith-File. Это будет работать: «. Как внутренние кавычки Пришлось поменять 'с \\\`»

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

Пробовал, что многие times, не работает, потому что PowerShell не может перевести значение 0 (или $ false) в логическое значение из строки. – Brent

+0

@Brent: Кажется, это известная проблема. Обновлен мой ответ с исправлением –

0

Используйте -command параметр для PowerShell:

Wha т вы бы выполнить в вашей PowerShell без задачи sceulder:

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

Что вы даете задание sceduler:

Programm бежать: Powershell

Аргументы:

-Command "& C:\Scripts\mypsscript.ps1 -parameter 'nice value'" 
Смежные вопросы