Как выполнить операторы так, как если бы они были выполнены в PowerShell REPL

Как выполнить операторы так, как если бы они были выполнены в PowerShell REPL

По сути, я хочу передавать команды <command>, как если бы они выполнялись в сеансах PowerShell PS >, чтобы они вызывалисьCreateProcess

powershell -Command <command>

Вышесказанное не работает во всех случаях. Например, это не работает

powershell -Command gci "C:\Program Files"

Но это работает.

powershell -Command choco -v

решение1

Проверьте эффективную команду, переданную powershellс помощью {}синтаксиса блока скрипта, следующим образом:

powershell -Command {gci "C:\Program Files"}
gci C:\Program Files

Похоже, что cmdпереводчикотъедает двойные кавычки. Следовательно, вам нужнопобегпробел внутри C:\Program Filesстроки, например, следующим образом:

powershell -Command gci "C:\Program` Files" # using backtick

или с помощью кавычек (любая из следующих командных строк должна подойти):

powershell -Command gci """C:\Program Files""" # inner double quotes
powershell -Command gci "'C:\Program Files'"   # inner single quotes
powershell -Command gci 'C:\Program Files'     # single quotes

Связанный контент