【发布时间】:2017-03-28 20:18:09
【问题描述】:
我实际上是在为监控解决方案编写一个带有 powershell 的插件。
此监控解决方案从命令行 cmd 运行 powershell 脚本。
其中一个输入参数是一个字符串数组,但看起来 cmd 无法将该数组交给 powershell。
这是我为向您解释问题而编写的示例脚本:
param (
[array]$myarray
)
Write-Host 'My array is a ' $myarray.GetType()
Write-Host 'How much value do I have in my array?' $myarray.count
Write-Host 'My content is' $myarray
当我从 powershell 控制台运行此脚本时,我的输出是正确的:
.\Test-Script.ps1 -myarray bla1, bla2
My array is a System.Object[]
How much value do I have in my array? 2
My content is bla1 bla2
现在我从 cmd 运行相同的操作,并且数组没有被解释为应有的:
powershell.exe -file Test-Script.ps1 -myarray bla1, bla2
My array is a System.Object[]
How much value do I have in my array? 1
My content is bla1,
我现在的问题是如何将数组提交到 powershell 脚本?我已经尝试了几乎所有的东西...... 使用 ^ 、括号、单引号、双引号等转义。但没有任何帮助...
感谢每一个提示:)
【问题讨论】:
-
Write-Verbose 是比 Write-Host 更好的选择,Jeffery Snover 说这几乎总是错误的。 jsnover.com/blog/2013/12/07/write-host-considered-harmful
标签: arrays windows powershell cmd parameters