Como obter o código de saída do Start-Process no PowerShell
-
Obter o Código de Saída do Comando
Start-Process
no PowerShell Usando o Parâmetro-Wait
-
Obter o Código de Saída do Comando
Start-Process
no PowerShell Verificando a Variável$LastExitCode
-
Obter o Código de Saída do Comando
Start-Process
no PowerShell Usando um Objeto de Processo - Conclusão

No PowerShell, o cmdlet Start-Process
é usado para iniciar novos processos, mas obter o código de saída de um processo iniciado com este comando não é simples. O código de saída representa o status do processo após sua conclusão e pode ser valioso para fins de script ou para determinar se o processo foi bem-sucedido.
Neste artigo, exploraremos maneiras de obter o código de saída de um processo iniciado com Start-Process
no PowerShell.
Obter o Código de Saída do Comando Start-Process
no PowerShell Usando o Parâmetro -Wait
Antes de nos aprofundarmos em como recuperar o código de saída usando o parâmetro -Wait
, vamos discutir brevemente o que são códigos de saída. Um código de saída é um valor numérico que um processo retorna ao ser concluído.
Convenionalmente, um código de saída 0
indica execução bem-sucedida, enquanto códigos de saída diferentes de zero representam erros ou condições específicas definidas pela aplicação ou script executado.
O parâmetro -Wait
no cmdlet Start-Process
instrui o PowerShell a aguardar a conclusão do processo iniciado antes de continuar com o script. Isso é crucial para obter o código de saída do processo.
Vamos explorar uma abordagem passo a passo para alcançar isso:
-
Para iniciar um processo e aguardar sua conclusão usando o parâmetro
-Wait
, use a seguinte sintaxe:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait
Substitua
"YourExecutable.exe"
pelo caminho para o executável ou script que você deseja executar e"YourArguments"
por quaisquer argumentos necessários ao processo. -
Para capturar o processo e seu código de saída, armazene o comando
Start-Process
em uma variável:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait -PassThru
O parâmetro
-PassThru
permite que o objeto do processo seja salvo na variável$process
. -
Uma vez que o processo seja concluído, você pode acessar seu código de saída usando a propriedade
ExitCode
do objeto do processo armazenado na variável:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
O cmdlet
Write-Host
é usado para exibir o código de saída obtido no console.
Ao empregar o parâmetro -Wait
e acessar a propriedade ExitCode
, você pode recuperar com sucesso o código de saída de um processo iniciado usando Start-Process
no PowerShell.
Aqui está um exemplo de script que ilustra os passos mencionados acima:
# Start the process and wait for it to complete
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -Wait -PassThru
# Retrieve the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
Neste exemplo, iniciamos o aplicativo Bloco de Notas, aguardamos sua conclusão e, em seguida, obtemos e exibimos o código de saída.
Obter o Código de Saída do Comando Start-Process
no PowerShell Verificando a Variável $LastExitCode
O PowerShell armazena automaticamente o código de saída do processo executado mais recentemente na variável $LastExitCode
. Esta variável pode ser acessada após um processo ser iniciado usando Start-Process
.
Aqui está uma abordagem passo a passo para utilizar $LastExitCode
:
-
Comece iniciando o processo desejado usando o cmdlet
Start-Process
. Aqui está uma sintaxe genérica:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow
Substitua
"YourExecutable.exe"
pelo caminho para o executável ou script que você deseja executar e"YourArguments"
por quaisquer argumentos necessários ao processo. -
Após a conclusão do processo, acesse o código de saída usando a variável
$LastExitCode
:$exitCode = $LastExitCode Write-Host "Exit code: $exitCode"
O cmdlet
Write-Host
é usado para exibir o código de saída no console.
Ao aproveitar a variável $LastExitCode
, você pode recuperar facilmente o código de saída de um processo iniciado usando Start-Process
no PowerShell.
Abaixo está um exemplo abrangente de script que ilustra os passos acima:
# Start the process
Start-Process -FilePath "notepad.exe" -NoNewWindow
# Access the exit code
$exitCode = $LastExitCode
Write-Host "Exit code: $exitCode"
Neste exemplo, iniciamos o aplicativo Bloco de Notas e, em seguida, acessamos e exibimos o código de saída usando $LastExitCode
.
Obter o Código de Saída do Comando Start-Process
no PowerShell Usando um Objeto de Processo
Ao usar o parâmetro -PassThru
com Start-Process
, o cmdlet retorna um objeto System.Diagnostics.Process
que representa o processo recém-iniciado. Você pode então acessar o código de saída usando a propriedade ExitCode
deste objeto.
Aqui está uma abordagem passo a passo para alcançar isso:
-
Inicie o processo desejado e capture o objeto do processo usando o parâmetro
-PassThru
:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -PassThru
Substitua
"YourExecutable.exe"
pelo caminho para o executável ou script que você deseja executar e"YourArguments"
por quaisquer argumentos necessários ao processo. -
Se necessário, aguarde a conclusão do processo usando o método
WaitForExit()
:$process.WaitForExit()
Esta etapa garante que o script aguarde a finalização do processo antes de prosseguir.
-
Uma vez que o processo seja concluído, acesse seu código de saída usando a propriedade
ExitCode
:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
O cmdlet
Write-Host
é usado para exibir o código de saída no console.
Ao aproveitar um objeto de processo e acessar a propriedade ExitCode
, você pode recuperar com sucesso o código de saída de um processo iniciado usando Start-Process
no PowerShell.
Aqui está um script abrangente que ilustra os passos mencionados acima:
# Start the process and obtain a process object
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -PassThru
# Wait for the process to complete
$process.WaitForExit()
# Access the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
Neste exemplo, iniciamos o aplicativo Bloco de Notas, aguardamos sua conclusão e, em seguida, obtemos e exibimos o código de saída usando o objeto do processo.
Conclusão
Obter o código de saída de um processo iniciado com o cmdlet Start-Process
no PowerShell pode ser feito usando o parâmetro -Wait
, a variável $LastExitCode
ou acessando a propriedade ExitCode
do objeto System.Diagnostics.Process
.
Entender como recuperar o código de saída permite que você manipule e responda programaticamente aos resultados dos processos, aprimorando a automação e a confiabilidade de seus scripts PowerShell.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn