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

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

En un cmd prompt, puede ejecutar dos comandos en una línea así:

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 a & en un cmd prompt?

Cualquier método de ejecutar dos comandos en una línea servirá. Sé que puedo hacer un script, pero estoy buscando algo un poco más fuera de lo común.

Respuestas (2)

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

Usa un punto y coma para encadenar los comandos en PowerShell:

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

Un punto y coma enlazará los comandos como la respuesta anterior decía , aunque hay una diferencia clave en el comportamiento con el operador & en el intérprete de comandos del 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 claras como el intercambio de variables sin un intermedio:

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

Resultaría en:

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 forma de hacerlo en PowerShell:

$b, $a = $a, $b

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