Выполнение команды CMD из скрипта PowerShell - PullRequest
0 голосов
/ 04 октября 2018

Я видел много похожих вопросов, но ни один из них не связан с выполнением команды CMD, такой как ipconfig из сценария PS (.ps1).

Если вы вводите эти команды на PSконсоли они работают нормально, но однажды на скрипте они не работают, ниже вы можете увидеть пример:

PS C:\Users\TestQro> adb devices
List of devices attached

PS C:\Users\TestQro> adb devices | Select-String -Quiet List
True

возвращает True, потому что Select-String находит слово "List" в ответе команды "adb devices ", что является ожидаемым поведением.Но если я пойду и положу ту же команду в файл сценария .ps1, PS при запуске запускает ответы:

PS C:\TesterInfo> ./TunnerApp.ps1

cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters: InputObject[0]:

Как мне вводить обычные команды CMD внутри сценария?Почему он ожидает параметры в скрипте, а прямо в консоли работает нормально?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Исходя из вашего вывода там

PS C:\TesterInfo> ./TunnerApp.ps1

cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters: InputObject[0]:

Похоже, у вас есть где-то в скрипте PowerShell оператор Write-Output, который не имеет никаких входных данных.Ищите пустое Write-Output заявление где-то

0 голосов
/ 04 октября 2018

То, что вы называете CMD-командами , на самом деле является исполняемыми файлами в папках Windows или System32 (или некотором другом пути переменной окружения PATH).Таким образом, вы можете вызывать их как любой исполняемый файл, используя оператор вызова :

& "$Env:SystemRoot\System32\IPCONFIG.exe"

about_Operators

...