Pregunta ¿Cómo ejecuto múltiples comandos en una línea en PowerShell?


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

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 permite producir rápidamente el equivalente de & en un mensaje de cmd?

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


198


origen


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 la gran pregunta) - Konrad Viltersten


Respuestas:


Use un punto y coma para encadenar comandos en PowerShell:

ipconfig /release; ipconfig /renew

283



¿Se ejecutarán en paralelo o secuencialmente? - Tarkus
Esto los ejecutará secuencialmente, al igual que el operador & en cmd.exe. - Squeezy
Sin embargo, hay una gran diferencia: ";" ejecuta el segundo comando incluso si el primero falla. - Ivan
Como se mencionó anteriormente, este es también el comportamiento de & en cmd.exe. - Squeezy
¿Hay alguna manera de ejecutar el segundo comando solo si el primero falla? - Rafi


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 de MS-DOS.

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

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

Daría lugar a:

2
1

Hasta donde yo sé, no hay forma de replicar este comportamiento en PowerShell. Algunos pueden argumentar que eso es algo bueno.

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

$b, $a = $a, $b

Dará como resultado un intercambio de línea único de los valores variables.


28



No parece funcionar desde el campo "Objetivo" con la opción de comando en atajo, aunque - clearlight