【发布时间】:2021-05-02 05:36:05
【问题描述】:
我编写了一个接受字符串数组参数的 PowerShell 脚本。它在脚本的param 部分中定义,如下所示:
param
(
[Parameter(Position=0)]
[string[]]$TemplateNames,
...
)
通过 PowerShell 命令行调用脚本时,我可以使用以下语法轻松地将多个字符串传递给该参数:
.\Script.ps1 -TemplateNames @("Name1","Name2")
但是,我需要在计划任务中调用此脚本,无论我使用什么语法,我都无法让 PowerShell 正确解释数组。 @(...) 语法不起作用,传递用逗号分隔的字符串也不起作用,将数组放在括号中也不起作用,无论我如何转义参数甚至整个脚本调用在单引号、双引号甚至多个单引号或双引号中,它都不起作用。像这样通过 Windows 命令行手动调用脚本时也会出现同样的问题:
Powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "C:\Script\Script.ps1" -TemplateNames ...
如何在计划任务中或通过 Windows 命令行调用时将数组传递给 PowerShell 脚本?
【问题讨论】:
标签: powershell cmd parameters parameter-passing scheduled-tasks