【问题标题】:Powershell Script Will not Run upon Open or Pass Parameter from Task SchedulerPowershell 脚本不会在从任务计划程序打开或传递参数时运行
【发布时间】:2020-01-29 09:09:01
【问题描述】:

我在 Task Scheduler Program/Script 提示符下调用 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 脚本并从任务计划程序传递参数?提前致谢。

【问题讨论】:

  • 因为我只是想打开一个 Excel 文件,所以我绕过了 PowerShell,直接使用计划的 Excel 实例打开了该文件。如果有人有任何见解,我仍然想了解如何通过任务计划程序与 PowerShell 交互。
  • 最好不要为此使用 ISE。使用 powershell.exe
  • 发现弱点。重新写了答案。

标签: powershell scripting parameter-passing taskscheduler windows-task-scheduler


【解决方案1】:

Windows 10 64 位。 PowerShell 5.1

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

使用以下内容创建 %USERPROFILE%\Desktop\1.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\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

Bing search - pass arguments to powershell script

Bing search - windows scheduled task pass arguments to powershell script

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 2020-07-13
    • 2019-10-31
    • 1970-01-01
    • 2017-11-19
    • 2023-03-15
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多