Bagaimana cara menjalankan beberapa perintah pada satu baris di PowerShell?


269

Dalam prompt cmd, Anda dapat menjalankan dua perintah pada satu baris seperti:

ipconfig /release & ipconfig /renew

Ketika saya menjalankan perintah ini di PowerShell, saya mendapatkan:

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

Apakah PowerShell memiliki operator yang memungkinkan saya untuk dengan cepat menghasilkan setara &dalam cmd prompt?

Metode menjalankan dua perintah dalam satu baris akan dilakukan. Saya tahu bahwa saya dapat membuat skrip, tetapi saya mencari sesuatu yang sedikit lebih sulit.


5
Catatan Menyenangkan: Antara port Serial dan Serialisasi, pertanyaan ini hampir tidak mungkin untuk dicari.
David

Menjadi kutu buku ... Sangat mudah untuk mencarinya. Cukup sulit untuk mendapatkan serangkaian klik yang relevan. :) (+1 untuk pertanyaan hebat)
Konrad Viltersten

Jawaban:


384

Gunakan titik koma untuk rantai perintah di PowerShell:

ipconfig /release; ipconfig /renew

9
Akankah mereka berjalan secara paralel atau berurutan?
Tarkus

19
Ini akan menjalankannya secara berurutan, seperti halnya operator & di cmd.exe.
Terjepit

43
Ada perbedaan besar meskipun - ";" menjalankan perintah kedua bahkan jika yang pertama gagal.
Ivan

10
Seperti disebutkan di atas, ini juga merupakan perilaku & di cmd.exe.
Meremas

7
@Rafi Ya, Coba {Command-One -ea Stop} Tangkap {Command-Two}
Dave_J

30

Tanda titik koma akan menautkan perintah seperti jawaban sebelumnya yang dinyatakan , meskipun ada perbedaan kunci untuk perilaku dengan &operator dalam penerjemah perintah gaya MS-DOS.

Dalam interpreter perintah, substitusi variabel terjadi ketika baris dibaca. Ini memungkinkan beberapa kemungkinan rapi seperti menukar variabel tanpa interim:

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

Akan menghasilkan:

2
1

Sejauh yang saya tahu, tidak ada cara untuk mereplikasi perilaku ini di PowerShell. Beberapa mungkin berpendapat itu hal yang baik.

Sebenarnya ada cara untuk melakukan ini di PowerShell:

$b, $a = $a, $b

Ini akan menghasilkan pertukaran baris tunggal dari nilai variabel.


Tampaknya tidak bekerja dari bidang "Target" dengan opsi
-command
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.