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


269

Em um prompt do cmd, você pode executar dois comandos em uma linha da seguinte maneira:

ipconfig /release & ipconfig /renew

Quando executo esse comando no PowerShell, recebo:

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

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

Qualquer método para executar dois comandos em uma linha será suficiente. Eu sei que posso fazer um script, mas estou procurando algo um pouco mais fora do punho.


5
Nota divertida: Entre portas seriais e serialização, é praticamente impossível procurar essa pergunta.
David

Ser nerd ... É muito fácil procurar por isso. É muito difícil obter um conjunto relevante de hits. :) (+1 para grande questão)
Konrad Viltersten

Respostas:


384

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

ipconfig /release; ipconfig /renew

9
Eles serão executados em paralelo ou sequencialmente?
Tarkus

19
Isso os executará sequencialmente, assim como o operador & no cmd.exe.
Squeezy

43
Porém, há uma grande diferença - ";" executa o segundo comando, mesmo se o primeiro falhar.
1019 Ivan Ivan

10
Como mencionado acima, esse também é o comportamento do & in cmd.exe.
Squeezy

7
@ Rafi Sim, tente {Command-One -ea Stop} Capturar {Command-Two}
Dave_J 5/16/16

30

Um ponto-e-vírgula vinculará os comandos como indicado na resposta anterior , embora exista uma diferença importante no comportamento do &operador no interpretador de comandos no estilo MS-DOS.

No interpretador de comandos, a substituição da variável ocorre quando a linha é lida. Isso permite algumas possibilidades simples, 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

Até onde eu sei, não há como replicar esse comportamento no PowerShell. Alguns podem argumentar que é uma coisa boa.

De fato, existe uma maneira de fazer isso no PowerShell:

$b, $a = $a, $b

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


Não parece trabalhar em campo "Target" com a opção -command no atalho embora
clearlight
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.