Como executar declarações como se fossem executadas dentro de um REPL do PowerShell

Como executar declarações como se fossem executadas dentro de um REPL do PowerShell

Basicamente eu quero passar comandos <command>, como se eles fossem executados dentro de uma sessão do PowerShell PS >, para serem invocados porCreateProcess

powershell -Command <command>

O acima não funciona em todos os casos. Por exemplo, isso não funciona

powershell -Command gci "C:\Program Files"

Mas isso funciona

powershell -Command choco -v

Responder1

Verifique o comando efetivo passado para powershellusar {}a sintaxe do scriptblock da seguinte forma:

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

Parece que o cmdintérpretecome aspas duplas. Portanto, você precisaescaparo espaço dentro da C:\Program Filesstring, por exemplo, como segue:

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

ou usando aspas (qualquer uma das seguintes linhas de comando deve funcionar):

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

informação relacionada