Передача переменной в 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 ответ

Как и другие, уже отмеченные в комментариях, здесь есть две проблемы:

  1. Вы должны передать массив строк -ArgumentList, Вы делаете это, разделяя ваши аргументы с ,, Не пробел.

  2. Заполнить объект $GPUList[1] исправить с вашим " вокруг строки есть два способа заполнить строку объектом:

    1. Спасаясь " в строке с ` и выражение переменных в () чтобы убедиться, что позиция массива будет принята во внимание: -ArgumentList '\disable', `"$($GPUList[1])`"

    2. Заполнение переменной ссылкой на позицию: -ArgumentList 'disable', ('"{0}"' -f $GPUList[1])

Другие вопросы по тегам