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

Как запустить несколько команд в PowerShell на одной строке?

В командной строке можно запустить две команды:

ipconfig /release & ipconfig /renew

Когда я запускаю эту команду в PowerShell, я получаю:

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

Есть ли у PowerShell оператор, который позволяет мне быстро создать эквивалент & в командной строке?

Любой способ выполнения двух команд в одной строке подойдет. Я знаю, что могу сделать скрипт, но я ищу что-нибудь более простое.

Ответы (2)

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

Используйте точку с запятой для передачи команд в PowerShell:

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

Точка с запятой будет связывать команды , как было сказано в предыдущем ответе , хотя в командном интерпретаторе стиля MS-DOS есть ключевое различие в поведении с оператором &.

В командном интерпретаторе подстановка переменных происходит при чтении строки. Это позволяет использовать некоторые аккуратные возможности, такие как замена переменных без промежуточного:

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

В результате:

2
1

Насколько я знаю, нет способа повторить это поведение в PowerShell. Некоторые могут поспорить, что это хорошо.

На самом деле есть способ сделать это в PowerShell:

$b, $a = $a, $b

Это приведет к однострочной замене значений переменных.

Похожие вопросы

3
19
10
28
1