Come ottenere il codice di uscita da Start-Process in PowerShell
-
Ottieni il Codice di Uscita dal Comando
Start-Process
in PowerShell Utilizzando il Parametro-Wait
-
Ottieni il Codice di Uscita dal Comando
Start-Process
in PowerShell Controllando la Variabile$LastExitCode
-
Ottieni il Codice di Uscita dal Comando
Start-Process
in PowerShell Utilizzando un Oggetto Processo - Conclusione

In PowerShell, il cmdlet Start-Process
viene utilizzato per avviare nuovi processi, ma ottenere il codice di uscita di un processo avviato con questo comando non è semplice. Il codice di uscita rappresenta lo stato del processo dopo che è stato completato e può essere prezioso per scopi di scripting o per determinare se il processo ha avuto successo.
In questo articolo, esploreremo i modi per ottenere il codice di uscita da un processo avviato utilizzando Start-Process
in PowerShell.
Ottieni il Codice di Uscita dal Comando Start-Process
in PowerShell Utilizzando il Parametro -Wait
Prima di entrare nei dettagli di come recuperare il codice di uscita utilizzando il parametro -Wait
, discutiamo brevemente cosa sono i codici di uscita. Un codice di uscita è un valore numerico che un processo restituisce al termine.
Convenzionalmente, un codice di uscita di 0
indica un’esecuzione riuscita, mentre i codici di uscita diversi da zero rappresentano errori o condizioni specifiche definite dall’applicazione o dallo script eseguito.
Il parametro -Wait
nel cmdlet Start-Process
istruisce PowerShell ad attendere il completamento del processo avviato prima di continuare con lo script. Questo è cruciale per ottenere il codice di uscita del processo.
Esploriamo un approccio passo dopo passo per raggiungere questo obiettivo:
-
Per avviare un processo e attendere il suo completamento utilizzando il parametro
-Wait
, utilizza la seguente sintassi:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait
Sostituisci
"YourExecutable.exe"
con il percorso dell’eseguibile o dello script che desideri eseguire e"YourArguments"
con eventuali argomenti richiesti dal processo. -
Per catturare il processo e il suo codice di uscita, memorizza il comando
Start-Process
in una variabile:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait -PassThru
Il parametro
-PassThru
consente di salvare l’oggetto processo nella variabile$process
. -
Una volta completato il processo, puoi accedere al suo codice di uscita utilizzando la proprietà
ExitCode
dell’oggetto processo memorizzato nella variabile:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Il cmdlet
Write-Host
viene utilizzato per visualizzare il codice di uscita ottenuto nella console.
Utilizzando il parametro -Wait
e accedendo alla proprietà ExitCode
, puoi recuperare con successo il codice di uscita di un processo avviato utilizzando Start-Process
in PowerShell.
Ecco uno script di esempio che illustra i passaggi sopra menzionati:
# 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"
In questo esempio, avviamo l’applicazione Notepad, aspettiamo che si completi e poi otteniamo e visualizziamo il codice di uscita.
Ottieni il Codice di Uscita dal Comando Start-Process
in PowerShell Controllando la Variabile $LastExitCode
PowerShell memorizza automaticamente il codice di uscita dell’ultimo processo eseguito nella variabile $LastExitCode
. Questa variabile può essere accessibile dopo che un processo è stato avviato utilizzando Start-Process
.
Ecco un approccio passo-passo per utilizzare $LastExitCode
:
-
Inizia avviando il processo desiderato utilizzando il cmdlet
Start-Process
. Ecco una sintassi generica:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow
Sostituisci
"YourExecutable.exe"
con il percorso dell’eseguibile o dello script che desideri eseguire e"YourArguments"
con eventuali argomenti richiesti dal processo. -
Dopo che il processo è completato, accedi al codice di uscita utilizzando la variabile
$LastExitCode
:$exitCode = $LastExitCode Write-Host "Exit code: $exitCode"
Il cmdlet
Write-Host
viene utilizzato per visualizzare il codice di uscita nella console.
Sfruttando la variabile $LastExitCode
, puoi recuperare senza sforzo il codice di uscita di un processo avviato utilizzando Start-Process
in PowerShell.
Di seguito è riportato un esempio completo di script che illustra i passaggi sopra:
# Start the process
Start-Process -FilePath "notepad.exe" -NoNewWindow
# Access the exit code
$exitCode = $LastExitCode
Write-Host "Exit code: $exitCode"
In questo esempio, avviamo l’applicazione Notepad e poi accediamo e visualizziamo il codice di uscita utilizzando $LastExitCode
.
Ottieni il Codice di Uscita dal Comando Start-Process
in PowerShell Utilizzando un Oggetto Processo
Quando utilizzi il parametro -PassThru
con Start-Process
, il cmdlet restituisce un oggetto System.Diagnostics.Process
che rappresenta il processo appena avviato. Puoi quindi accedere al codice di uscita utilizzando la proprietà ExitCode
di questo oggetto.
Ecco un approccio passo-passo per raggiungere questo obiettivo:
-
Avvia il processo desiderato e cattura l’oggetto processo utilizzando il parametro
-PassThru
:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -PassThru
Sostituisci
"YourExecutable.exe"
con il percorso dell’eseguibile o dello script che desideri eseguire e"YourArguments"
con eventuali argomenti richiesti dal processo. -
Se necessario, attendi che il processo si completi utilizzando il metodo
WaitForExit()
:$process.WaitForExit()
Questo passaggio assicura che lo script attenda il completamento del processo prima di procedere.
-
Una volta completato il processo, accedi al suo codice di uscita utilizzando la proprietà
ExitCode
:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Il cmdlet
Write-Host
viene utilizzato per visualizzare il codice di uscita nella console.
Sfruttando un oggetto processo e accedendo alla proprietà ExitCode
, puoi recuperare con successo il codice di uscita di un processo avviato utilizzando Start-Process
in PowerShell.
Ecco un esempio completo di script che illustra i passaggi sopra menzionati:
# 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"
In questo esempio, avviamo l’applicazione Notepad, attendiamo che si completi e poi otteniamo e visualizziamo il codice di uscita utilizzando l’oggetto processo.
Conclusione
Ottenere il codice di uscita da un processo avviato con il cmdlet Start-Process
in PowerShell può essere realizzato utilizzando il parametro -Wait
, la variabile $LastExitCode
, oppure accedendo alla proprietà ExitCode
dell’oggetto System.Diagnostics.Process
.
Comprendere come recuperare il codice di uscita consente di gestire e rispondere programmaticamente ai risultati dei processi, migliorando l’automazione e l’affidabilità dei tuoi script 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