2013-06-26 17:24:22 +0000 2013-06-26 17:24:22 +0000
309
309

Comment puis-je exécuter plusieurs commandes sur une ligne dans PowerShell ?

Dans une invite cmd, vous pouvez exécuter deux commandes sur une ligne comme suit :

ipconfig /release & ipconfig /renew

Lorsque j'exécute cette commande dans PowerShell, j'obtiens :

Ampersand not allowed. The `&` operator is reserved for future use

PowerShell a-t-il un opérateur qui me permet de produire rapidement l'équivalent de & dans une invite cmd ?

Toute méthode d'exécution de deux commandes sur une ligne fera l'affaire. Je sais que je peux faire un script, mais je cherche quelque chose d'un peu plus original.

Réponses (2)

438
438
438
2013-06-26 17:28:12 +0000

Utilisez un point-virgule pour enchaîner les commandes dans PowerShell :

ipconfig /release; ipconfig /renew
32
32
32
2013-09-10 17:16:28 +0000

Un point-virgule reliera les commandes comme la réponse précédente l'indiquait , bien qu'il y ait une différence essentielle avec le comportement avec l'opérateur & dans l'interpréteur de commandes de style MS-DOS.

Dans l'interpréteur de commandes, la substitution de variable a lieu lorsque la ligne est lue. Cela offre des possibilités intéressantes, comme la permutation de variables sans intermédiaire :

set a=1
set b=2
set a=%b% & set b=%a%
echo %a%
echo %b%

donnerait :

2
1

Pour autant que je sache, il n'y a aucun moyen de reproduire ce comportement dans PowerShell. Certains pourraient dire que c'est une bonne chose.

Il existe en fait un moyen de le faire dans PowerShell :

$b, $a = $a, $b

Il en résultera une permutation des valeurs des variables sur une seule ligne.