
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 powershell
usar {}
a sintaxe do scriptblock da seguinte forma:
powershell -Command {gci "C:\Program Files"}
gci C:\Program Files
Parece que o cmd
intérpretecome aspas duplas. Portanto, você precisaescaparo espaço dentro da C:\Program Files
string, 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