Передача переменной в PowerShell
Я пытаюсь передать переменную этой команде в PowerShell
Start-Process $devconloc -ArgumentList "\disable" '"'$GPUList[1]'"' -ErrorAction Stop
$GPUList[0]
является идентификатором оборудования и должен быть передан devcon.exe
в кавычках:
"PCI\VEN_10DE&DEV_1CBB&SUBSYS_087D1028&REV_A1\4&44A1B07&0&0008"
Но я получаю следующую ошибку
Start-Process: невозможно найти позиционный параметр, который принимает аргумент "" ".
Есть идеи, что происходит?
1 ответ
Как и другие, уже отмеченные в комментариях, здесь есть две проблемы:
Вы должны передать массив строк
-ArgumentList
, Вы делаете это, разделяя ваши аргументы с,
, Не пробел.Заполнить объект
$GPUList[1]
исправить с вашим"
вокруг строки есть два способа заполнить строку объектом:Спасаясь
"
в строке с`
и выражение переменных в()
чтобы убедиться, что позиция массива будет принята во внимание:-ArgumentList '\disable', `"$($GPUList[1])`"
Заполнение переменной ссылкой на позицию:
-ArgumentList 'disable', ('"{0}"' -f $GPUList[1])