224 votes

Puis-je obtenir && pour travailler à Powershell?

&& est notoirement difficiles à rechercher sur google, mais la meilleure que j'ai trouvé est cet article qui dit d'utiliser -and.

Malheureusement, il ne veut pas donner plus d'informations, et je ne peux pas savoir ce que je suis censé faire avec -and (encore une fois, une notoirement difficiles chose à rechercher)

Le contexte, je suis en train d'utiliser, c'est "exécuter cmd1, et en cas de succès, d'exécuter cmd2", en gros ceci:

csc /t:exe /out:a.exe SomeFile.cs && a.exe

Cela devrait être facile quelques points de rep pour quelqu'un qui sait, merci!


Edit: Si vous voulez juste pour exécuter plusieurs commandes sur une seule ligne et vous n'avez pas de soins si la première échoue ou non, vous pouvez utiliser ; Pour la plupart de mes besoins, c'est très bien

Par exemple: kill -n myapp; ./myapp.exe.

243voto

Jay Bazuzi Points 20462

Dans CMD, '&&' signifie "exécution de la commande 1, et si elle réussit, exécuter la commande 2". Je l'ai utilisé pour des choses comme:

build && run_tests

Dans PowerShell, la chose la plus proche que vous pouvez faire est:

(build) -and (run_tests)

Il a la même logique, mais le texte de sortie des commandes est perdu. C'est peut-être assez bon pour vous, si.

MODIFIER

Si vous faites cela dans un script, vous serez probablement mieux de séparer les états, comme ceci:

build
if ($?) {
    run_tests
}

30voto

& & et || figuraient sur la liste des choses à mettre en œuvre (le sont encore), mais n’a pas pop-up comme la prochaine chose plus utile à ajouter. La raison est que nous avons - et et -OR. Si vous pensez que c’est important, Veuillez déposer une suggestion sur Connect et nous allons envisager pour V3.

0voto

Mohit Chakraborty Points 810

PowerShell a - et et - ou des opérateurs logiques. Les opérateurs ne fonctionnent pas la façon dont vous vous attendez à ? Dans l’affirmative, vous pouvez poster ici l’expression.

0voto

Jeff Carter Points 1
<pre><code></code><p><pre><code></code></pre></pre>

-1voto

Matt Hamilton Points 98268

Cela dépend du contexte, mais voici un exemple de "et" en action:

 get-childitem | where-object { $_.Name.StartsWith("f") -and $_.Length -gt 10kb }
 

Ainsi, tous les fichiers de plus de 10 Ko se trouvent dans un répertoire dont le nom de fichier commence par "f".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X