将变量传递给PowerShell

时间:2019-02-25 12:29:08

标签: windows powershell devcon

我正在尝试将变量传递给PowerShell中的此命令

Start-Process $devconloc -ArgumentList "\disable" '"'$GPUList[1]'"' -ErrorAction Stop

$GPUList[0]是一个硬件ID,需要将其传递给引号中的devcon.exe

"PCI\VEN_10DE&DEV_1CBB&SUBSYS_087D1028&REV_A1\4&44A1B07&0&0008"

但是我收到以下错误

  

Start-Process:找不到接受参数'“'的位置参数。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

就像评论中已经指出的其他人一样,这里有两个问题:

  1. 您应该将字符串数组传递给-ArgumentList。为此,您可以使用,分隔参数。不是空格。

  2. 要用与您的$GPUList[1]正确的对象"来填充字符串,有两种方法可以用对象填充字符串:

    1. 使用"对字符串中的`进行转义,并对()中的变量进行措辞,以确保注意数组位置:-ArgumentList '\disable', `"$($GPUList[1])`" < / p>

    2. 使用位置引用填充变量:-ArgumentList 'disable', ('"{0}"' -f $GPUList[1])