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

Jak uruchomić wiele komend w jednym wierszu programu PowerShell?

W jednym wierszu można uruchomić dwie takie komendy:

ipconfig /release & ipconfig /renew

Gdy uruchomię tę komendę w programie PowerShell, otrzymam:

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

Czy program PowerShell posiada operator, który pozwala mi szybko wyprodukować odpowiednik & w wierszu zachęty cmd?

Każda metoda uruchomienia dwóch komend w jednym wierszu wystarczy. Wiem, że potrafię zrobić skrypt, ale szukam czegoś więcej poza mankietem.

Odpowiedzi (2)

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

W PowerShell używaj średnika do przekazywania poleceń:

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

Średnik będzie łączył komendy jak podano w poprzedniej odpowiedzi , choć istnieje kluczowa różnica w zachowaniu się operatora & w interpreterze komend w stylu MS-DOS.

W interpreterze komend, podstawianie zmiennych ma miejsce podczas odczytu linii. Daje to pewne zgrabne możliwości, takie jak zamiana zmiennych bez pośrednictwa:

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

W rezultacie:

2
1

O ile mi wiadomo, nie ma możliwości odtworzenia tego zachowania w PowerShellu. Niektórzy mogą twierdzić, że to dobrze.

W PowerShellu jest na to sposób:

$b, $a = $a, $b

Spowoduje to zamianę wartości zmiennych w jednej linii.