我在任务计划程序/脚本提示符中调用 PowerShell 应用程序,如下所示:
C:\Windows\System32\WindowsPowerShell 1.0\powershell_ise.exe
然后,我在“添加参数”提示中调用可执行脚本,如下所示:
C: hwebster\PSISE_Scripts\OpenExcelFile.ps1
这会在 PowerShell 窗口中成功打开我的脚本。但是,它不会运行脚本。
我还需要将参数从任务调度程序传递到脚本,为此我尝试了 -File 方法:
-文件“C: hwebster\PSISE_Scripts\OpenExcelFile.ps1”fpathfname 'C: hwebster\VBA\DailyEconomicCalendar.xlsm'
这会将 fpathfname 参数读取为第二个文件并批评我的语法。
我也尝试过-Command方法:
-命令“& C: hwebster\PSISE_Scripts\OpenExcelFile.ps1 -fpathfname 'C: hwebster\VBA\DailyEconomicCalendar.xlsm'”
我已经尝试了 -File 和 -Command 内容周围的引号和单引号的所有迭代,但也没有成功。我需要输入什么才能成功运行 PowerShell 脚本并从任务计划程序传递参数?
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
如果您的参数中没有空格和/或引号,则不必引用该参数。
powershell %USERPROFILE%\Desktop\1.ps1 Argument1 Argument2
如果你的参数中有空格和/或引号,你必须用单引号括住参数。
powershell %USERPROFILE%\Desktop\1.ps1 'Argument One' 'Argument Two'
powershell %USERPROFILE%\Desktop\1.ps1 '"ArgumentOne"' '"ArgumentTwo"'
将整个命令复制并粘贴到“程序/脚本:”框中的新操作中,然后单击“确定”。 Windows 10 任务计划程序会询问您是否要在“程序/脚本”和“添加参数”之间拆分粘贴。单击“是”。
参考资料: