Как передать несколько команд в PowerShell из файла ярлыка? - PullRequest
0 голосов
/ 08 июня 2018

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

Вот так это выглядит сейчас при редактировании "Цель "ярлыка:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command "cd 'C:\eARKIV\Programmer\Android ADB'" -Command 'test'

Смена каталога работает, но я получаю следующую ошибку при попытке ввести ввод с помощью ярлыка:

"Set-Location : A parameter cannot be found that matches parameter name 'Command'."

Как обойти этои заставить его работать?(

1 Ответ

0 голосов
/ 08 июня 2018

Только один -Command аргумент поддерживается;все после (первого) -Command становится частью команды для выполнения в новом сеансе [1] , как объясняет powershell -?.

Для передачи несколько команды, используйте ; внутри строки "...", передаваемой параметру (один и единственный)
-Command:

... -NoExit -Command "cd 'C:\eARKIV\Programmer\Android ADB'; & 'test'"

Обратите внимание, что -Command должно быть последним аргумент передан. [2]


[1] Следовательно, -Command 'test' случайно стал дополнительными аргументами , переданными вашему cd (Set-Location) команда внутри нового сеанса PowerShell, и это то, на что жаловалась ошибка - это также означает, что команда cd действительно не смогла изменить текущее местоположение (рабочий каталог)

[2] Технически, вы можете следовать -Command с несколькими аргументами, но все они становятся частью кода, который PowerShell выполняет в новом сеансе.Для концептуальной ясности и во избежание (более серьезного) экранирования и цитирования головной боли предпочтительно передавать все команды в виде одиночной , "..." строки в кавычках.

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