Powershell 脚本不会 运行 打开或从任务计划程序传递参数

Powershell Script Will not Run upon Open or Pass Parameter from Task Scheduler

我在 Task Scheduler Program/Script 提示中调用 PowerShell 应用程序如下:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe

然后我在添加参数提示中调用可执行脚本如下:

C:hwebster\PSISE_Scripts\OpenExcelFile.ps1

这成功地在 PowerShell window 中打开了我的脚本。但是,它没有 运行 脚本。

我还需要将一个参数从任务调度程序传递到脚本,为此我尝试了 -File 方法:

-文件"C:hwebster\PSISE_Scripts\OpenExcelFile.ps1" fpathfname 'C:hwebster\VBA\DailyEconomicCalendar.xlsm'

这将 fpathfname 参数作为第二个文件读取并批评我的语法。

我也试过 -Command 方法:

-Command "&C:hwebster\PSISE_Scripts\OpenExcelFile.ps1 -fpathfname 'C:hwebster\VBA\DailyEconomicCalendar.xlsm'"

这 returns 处理参数时出错:没有具有以下名称的选项:命令。

我已经尝试了围绕 -File 和 -Command 内容的所有引号和单引号迭代,但也没有成功。我需要输入什么才能成功 运行 PowerShell 脚本并从 Task Scheduler 传递参数?提前致谢。

Windows 10 个 64 位。 PowerShell 5.1

如何将参数从 Windows 计划任务传递到 PowerShell 脚本。

使用以下内容创建 %USERPROFILE%\Desktop.ps1:

Write-Output "
All the arguments are: $args"
Write-Output "    The first argument is: " $args[0]
Write-Output "    The second argument is: " $args[1]
cmd /c pause 
exit 

构建您的计划任务:

停止的任务有时会留下 conhost.exe 的实例。如果它没有被杀死,任务可能会失败。使以下命令成为您任务的第一个操作:

taskkill /f /im conhost.exe 

如果您的参数 / s 中没有空格和/或引号,则您不必引用参数 / s。

powershell %USERPROFILE%\Desktop.ps1 Argument1 Argument2

如果您的参数 / s 中有空格和/或引号,您必须将参数 / s 用单引号引起来。

powershell %USERPROFILE%\Desktop.ps1 'Argument One' 'Argument Two' 
powershell %USERPROFILE%\Desktop.ps1 '"ArgumentOne"' '"ArgumentTwo"' 

将整个命令复制并粘贴到“Program/script:”框中的新操作中,然后单击“确定”。 Windows 10 Task Scheduler 会询问您是否要在“Program/Script”和“添加参数”之间拆分粘贴。单击是。

Whosebug

Bing search - pass arguments to powershell script

Bing search - windows scheduled task pass arguments to powershell script