Questão Como executo vários comandos em uma linha no PowerShell?


Em um prompt de cmd, você pode executar dois comandos em uma linha como esta:

ipconfig /release & ipconfig /renew

Quando executo este comando no PowerShell, recebo:

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

O PowerShell tem um operador que me permite produzir rapidamente o equivalente a & em um prompt de cmd?

Qualquer método de executar dois comandos em uma linha serve. Eu sei que posso fazer um roteiro, mas estou procurando algo um pouco mais improvisado.


198


origem


Nota Divertida: Entre portas Seriais e Serialização, esta questão é virtualmente impossível de procurar. - David
Ser nerd ... É muito fácil procurá-lo. É muito difícil conseguir um conjunto relevante de resultados. :) (+1 para grande pergunta) - Konrad Viltersten


Respostas:


Use um ponto-e-vírgula para encadear comandos no PowerShell:

ipconfig /release; ipconfig /renew

283



Eles vão correr em paralelo ou sequencialmente? - Tarkus
Isso os executará sequencialmente, assim como o operador & em cmd.exe. - Squeezy
Há grande diferença embora - ";" executa o segundo comando, mesmo se o primeiro falhar. - Ivan
Como mencionado acima, este também é o comportamento do & cmd.exe. - Squeezy
Existe uma maneira de ter o segundo comando executado apenas se o primeiro falhar? - Rafi


Um ponto-e-vírgula ligará os comandos como a resposta anterior afirmou, embora haja uma diferença fundamental no comportamento com o & operador no interpretador de comandos de estilo do MS-DOS.

No interpretador de comandos, a substituição de variáveis ​​ocorre quando a linha é lida. Isso permite algumas possibilidades interessantes, como trocar variáveis ​​sem um intervalo:

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

Resultaria em:

2
1

Tanto quanto sei, não há como replicar esse comportamento no PowerShell. Alguns podem argumentar que isso é bom.

Existe, na verdade, uma maneira de fazer isso no PowerShell:

$b, $a = $a, $b

Isso resultará em uma troca de linha única dos valores das variáveis.


28



Parece não funcionar no campo "Destino" com a opção -command no atalho - clearlight