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

205

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, obtenho:

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 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.

    
por David 26.06.2013 / 19:24

2 respostas

294

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

ipconfig /release; ipconfig /renew
    
por 26.06.2013 / 19:28
28

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

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

Existe, de fato, uma maneira de fazer isso no PowerShell:

$b, $a = $a, $b

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

    
por 10.09.2013 / 19:16