Cómo ejecutar declaraciones como si se ejecutaran dentro de un REPL de PowerShell

Cómo ejecutar declaraciones como si se ejecutaran dentro de un REPL de PowerShell

Básicamente, quiero pasar comandos <command>, como si se ejecutaran dentro de sesiones de PowerShell PS >, para que los invoqueCreateProcess

powershell -Command <command>

Lo anterior no funciona en todos los casos. Por ejemplo esto no funciona

powershell -Command gci "C:\Program Files"

Pero esto funciona

powershell -Command choco -v

Respuesta1

Verifique el comando efectivo pasado al powershelluso de {}la sintaxis de scriptblock de la siguiente manera:

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

Parece que el cmdintérpretecome doble comillas. Por lo tanto, es necesarioescaparel espacio dentro de la C:\Program Filescadena, por ejemplo, de la siguiente manera:

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

o usando comillas (cualquiera de las siguientes líneas de comando debería 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

información relacionada