Como eu passo uma instrução ao cmd.exe de um comando do PowerShell?

2

Eu tenho um arquivo de lote que executa um comando (que está em outro arquivo de lote) no modo administrativo via:

//instructions above

powershell.exe -Command "Start-Process file.bat -Verb RunAs" 

//instructions below

file.bat simplesmente contém:

iisreset
exit

Eu quero poder executar isso diretamente em um único arquivo de lote. Isso pode ser feito? Eu estava esperando por algo como:

 powershell.exe -Command "Start-Process 'iisReset && exit' -Verb RunAs" 

Mas isso não funciona.

    
por benscabbia 29.07.2016 / 13:41

1 resposta

2

O cmdlet Start-Process assume que o primeiro parâmetro ( -FilePath , especificamente) é apenas o nome do arquivo do programa a ser executado. É por isso que você estava recebendo erros "não é possível encontrar o arquivo especificado". A opção -ArgumentList foi projetada para passar parâmetros. Portanto, isso deve fazer o que você deseja:

powershell -Command "Start-Process 'cmd' -Verb RunAs -ArgumentList '/c calc && exit'"

Observe que talvez você nem precise da parte && exit em algumas circunstâncias.

    
por 29.07.2016 / 22:12