Je me demande si quelqu'un connaît un moyen d'exécuter un programme conditionnel en fonction de la réussite de sortie/échec du programme précédent. Est-il possible pour moi d'exécuter un programme2 immédiatement après programme1 si programme1 se termine sans tester la variable LASTEXITCODE? J'ai essayé le -band et-et les opérateurs en vain, bien que j'ai eu le sentiment qu'ils ne fonctionneraient pas de toute façon, et le meilleur substitut est une combinaison d'un point-virgule et une déclaration if. Je veux dire, quand il s'agit de la construction d'un paquet un peu automatiquement de la source sous Linux, l'opérateur & & ne peut pas être battu:Exécuter processus conditionnellement dans Windows PowerShell (par exemple, le && et || opérateurs Bash)
# Configure a package, compile it and install it
./configure && make && sudo make install
PowerShell me demander de faire ce qui suit, en supposant que je pouvais utiliser le même construire le système dans PowerShell:
# Configure a package, compile it and install it
.\configure ; if ($LASTEXITCODE -eq 0) { make ; if ($LASTEXITCODE -eq 0) { sudo make install } }
Bien sûr, je pourrais utiliser plusieurs lignes, enregistrez-le dans un fichier et exécuter le script, mais l'idée est qu'il soit concis (sauf les frappes). Peut-être que c'est juste une différence entre PowerShell et Bash (et même l'invite de commande Windows intégrée qui supporte l'opérateur & &) Je vais devoir m'adapter, mais s'il y a une manière plus propre de le faire, j'aimerais savoir .
Quiconque s'intéresse au style Bash '&&' et '||' devient partie intégrante de PowerShell: veuillez voter pour la fonctionnalité [ici] (https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11087898-implement-the-and-operators-that-bash-has). – mklement0