【问题标题】:powershell get-process behavior different when in scriptpowershell get-process 行为在脚本中有所不同
【发布时间】:2016-09-04 10:56:39
【问题描述】:

如果我输入这个命令,结果是正确的:

Get-Process -ComputerName localhost -Id 1112,2436  
Get-Process -ComputerName localhost -Id 1112, 2436  

注意第二个命令列表中的空格。

但如果我尝试在脚本中执行此操作,则会失败:

$str = '1112, 2436'  
Get-Process -ComputerName localhost -Id $str  

Get-Process:无法绑定参数“Id”。无法将值“1112, 2436”转换为类型“System.Int32”。错误:“输入字符串的格式不正确。”

这也失败了:

$str = '1112,2436'  
Get-Process -ComputerName localhost -Id $str 

Get-Process : 找不到进程标识符为 11122436 的进程。

知道如何将这两个 id 传递给 Powershell 脚本中的命令吗?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    -Id 参数中的1112, 2436 是一个数组声明,而不是字符串。删除引号:

    $Ids = 1112, 2436 # spaces don't matter
    Get-Process -ComputerName localhost -Id $Ids
    

    【讨论】:

    • 1112, 2436 也是一个数组,但它是一个 整数 而不是字符串的数组。
    • 代码(和这个答案)是正确的,但我已经编辑了(现在令人困惑的)变量名,因为它暗示该值仍然是[String]
    猜你喜欢
    • 1970-01-01
    • 2019-08-16
    • 2013-10-13
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2011-08-13
    相关资源
    最近更新 更多