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

Como posso correr vários comandos numa linha no PowerShell?

Num prompt cmd, pode correr dois comandos numa linha assim:

ipconfig /release & ipconfig /renew

Quando corro este comando no PowerShell, recebo:

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

A PowerShell tem um operador que me permita produzir rapidamente o equivalente a & num prompt cmd?

Qualquer método de correr dois comandos numa linha serve. Eu sei que posso fazer um script, mas estou à procura de algo um pouco mais fora da manga.

Respostas (2)

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

Use um ponto-e-vírgula para os comandos em cadeia no PowerShell:

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

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

No interpretador de comandos, a substituição da variável tem lugar quando a linha é lida. Isto permite algumas possibilidades de troca de variáveis sem um provisório:

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á forma de replicar este comportamento no PowerShell. Alguns podem argumentar que é uma coisa boa.

Existe de facto uma forma de o fazer na PowerShell:

$b, $a = $a, $b

Resultará numa troca de linha única dos valores das variáveis.