繁体   English   中英

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

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

我在任务计划程序/脚本提示中调用 PowerShell 应用程序,如下所示:

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

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

C:\\1hwebster\\PSISE_Scripts\\OpenExcelFile.ps1

这成功地在 PowerShell 窗口中打开了我的脚本。 但是,它不运行脚本。

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

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

这将 fpathfname 参数读取为第二个文件并批评我的语法。 在此处输入图片说明

我也试过 -Command 方法:

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

这将返回一个错误处理参数:没有具有以下名称的选项:命令。 在此处输入图片说明

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

Windows 10 64 位。 PowerShell 5.1

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

如果将此作为计划任务进行测试,请创建一个新操作并首先运行它:

taskkill /f /im conhost.exe 

失败的任务有时会留下 conhost.exe 的实例。 如果在运行脚本之前没有杀死它,脚本可能会失败。

添加到 powershell 脚本 %USERPROFILE%\\Desktop\\1.ps1:

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

构建您的计划任务操作:

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

powershell %USERPROFILE%\Desktop\1.ps1 Argument1 Argument2

如果参数 / s 中有空格和/或引号,则必须将参数 / s 单引号。

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

将整个命令复制并粘贴到一个新操作中,Windows 10 任务计划程序会询问您是否要在“程序/脚本”和“添加参数”之间拆分粘贴。 单击确定。 单击是。

屏幕截图将命令粘贴到新操作中

stackoverflow

请参阅必应搜索 - 将参数传递给 powershell 脚本

请参阅必应搜索 - Windows 计划任务将参数传递给 powershell 脚本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM