HOWTO · PowerShell
Como obter o código de saída do Start-Process no PowerShell
Este artigo explicará como obter o código de saída após executar um script com o cmdlet start-process.
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 -WaitSubstitua
"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-Processem uma variável:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait -PassThruO parâmetro
-PassThrupermite 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
ExitCodedo 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" -NoNewWindowSubstitua
"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 -PassThruSubstitua
"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.