Передача переменной в PowerShell - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь передать переменную этой команде в 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 Ответ

0 голосов
/ 25 февраля 2019

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...