¿Cómo ejecuto varios comandos en una línea en PowerShell?


269

En un indicador de cmd, puede ejecutar dos comandos en una línea de esta manera:

ipconfig /release & ipconfig /renew

Cuando ejecuto este comando en PowerShell, obtengo:

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

¿PowerShell tiene un operador que me permita producir rápidamente el equivalente de &en un indicador de cmd?

Cualquier método de ejecutar dos comandos en una línea servirá. Sé que puedo hacer un guión, pero estoy buscando algo un poco más fuera del alcance.


55
Nota divertida: entre los puertos serie y la serialización, esta pregunta es prácticamente imposible de buscar.
David

Para ser nerd ... Es muy fácil buscarlo. Es bastante difícil obtener un conjunto relevante de éxitos. :) (+1 para una gran pregunta)
Konrad Viltersten

Respuestas:


384

Use un punto y coma para encadenar comandos en PowerShell:

ipconfig /release; ipconfig /renew

99
¿Correrán en paralelo o secuencialmente?
Tarkus

19
Esto los ejecutará secuencialmente, al igual que el operador & en cmd.exe.
Squeezy

43
Sin embargo, hay una gran diferencia: ";" ejecuta el segundo comando incluso si falla el primero.
Ivan

10
Como se mencionó anteriormente, este también es el comportamiento de & en cmd.exe.
Squeezy

77
@Rafi Sí, intente {Command-One -ea Stop} Catch {Command-Two}
Dave_J

30

Un punto y coma vinculará los comandos como se indicó en la respuesta anterior , aunque hay una diferencia clave en el comportamiento con el &operador en el intérprete de comandos de estilo MS-DOS.

En el intérprete de comandos, la sustitución de variables tiene lugar cuando se lee la línea. Esto permite algunas posibilidades interesantes, como el intercambio de variables sin un ínterin:

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

Daría como resultado:

2
1

Que yo sepa, no hay forma de replicar este comportamiento en PowerShell. Algunos pueden argumentar que es algo bueno.

De hecho, hay una manera de hacer esto en PowerShell:

$b, $a = $a, $b

Resultará en un intercambio de una sola línea de los valores variables.


Sin embargo
clearlight
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.