185 votos

¿Cómo puedo ejecutar varios comandos en una sola línea en Powershell?

En cmd símbolo del sistema, puede ejecutar dos comandos en una línea así:

ipconfig /release & ipconfig /renew

Al ejecutar este comando en PowerShell, me sale:

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

¿PowerShell tiene un operador que me permite producir rápidamente el equivalente de & en símbolo de cmd? Cualquier método de ejecutar dos comandos en una línea que va a hacer. Sé que se puede hacer un script, pero estoy buscando algo un poco más fuera del manguito.

258voto

Squeezy Puntos 2016

Utilice un punto y coma a la cadena de comandos en powershell:

ipconfig /release; ipconfig /renew

27voto

Dave_J Puntos 91

Un semi colon link de los comandos como la respuesta anterior comentado, aunque hay una diferencia clave para el comportamiento con el operador & en el MS-DOS de estilo de la intérprete de comandos.

En el intérprete de comandos, la variable de sustitución se lleva a cabo cuando la línea se lee. Esto permite que algunas interesantes posibilidades, tales como el intercambio de variables sin provisionales:

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

El resultado sería:

2
1

Que yo sepa, no hay manera de replicar este comportamiento en Powershell. Algunos pueden argumentar que es una buena cosa.

Edit: de hecho Hay una manera de hacer esto en Powershell: $b $a = $a, $b Resultará en una sola línea de intercambio de los valores de la variable

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: