Mi chiedo se qualcuno conosca un modo per eseguire condizionatamente un programma a seconda dell'uscita riuscita/errore del programma precedente. Esiste un modo per eseguire un programma2 immediatamente dopo programma1 se il programma 1 termina correttamente senza testare la variabile LASTEXITCODE? Ho provato gli operatori a banda larga e senza successo, anche se avevo la sensazione che non avrebbero funzionato comunque, e il miglior sostituto è una combinazione di un punto e virgola e una dichiarazione if. Voglio dire, quando si tratta di costruire un pacchetto un po 'automaticamente dall'origine su Linux, l'operatore & & non può essere battuto:Esegui il processo in modo condizionale in Windows PowerShell (ad esempio gli operatori && e || in Bash)
# Configure a package, compile it and install it
./configure && make && sudo make install
PowerShell mi avrebbe bisogno di fare quanto segue, assumendo ho potuto effettivamente utilizzare lo stesso costruire il sistema in PowerShell:
# Configure a package, compile it and install it
.\configure ; if ($LASTEXITCODE -eq 0) { make ; if ($LASTEXITCODE -eq 0) { sudo make install } }
Certo, avrei potuto usare più righe, salvarlo in un file ed eseguire lo script, ma l'idea è per essere conciso (salvare combinazioni di tasti). Forse è solo una differenza tra PowerShell e Bash (e anche il prompt dei comandi integrato di Windows che supporta l'operatore & &). Avrò bisogno di adattarmi, ma se c'è un modo più pulito per farlo, mi piacerebbe sapere .
Chiunque sia interessato a Bash-style '&&' e '||' diventa una parte di PowerShell: si prega di votare per la funzionalità [qui] (https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11087898-attuazione-i-e-operatori-che-bash-ha). – mklement0