Como obter o código de saída do Start-Process no PowerShell

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

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
John Wachira avatar John Wachira avatar

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