Làm cách nào để chạy nhiều lệnh trên một dòng trong PowerShell?


269

Trong dấu nhắc cmd, bạn có thể chạy hai lệnh trên một dòng như vậy:

ipconfig /release & ipconfig /renew

Khi tôi chạy lệnh này trong PowerShell, tôi nhận được:

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

PowerShell có một toán tử cho phép tôi nhanh chóng tạo ra tương đương &trong dấu nhắc cmd không?

Bất kỳ phương pháp chạy hai lệnh trong một dòng sẽ làm. Tôi biết rằng tôi có thể tạo ra một kịch bản, nhưng tôi đang tìm kiếm một cái gì đó xa hơn một chút.


5
Lưu ý thú vị: Giữa các cổng Nối tiếp và Nối tiếp, câu hỏi này hầu như không thể tìm kiếm.
David

Để được nerdy ... Thật dễ dàng để tìm kiếm nó. Thật khó để có được một bộ hit phù hợp. :) (+1 cho câu hỏi tuyệt vời)
Konrad Viltersten

Câu trả lời:


384

Sử dụng dấu chấm phẩy để xâu chuỗi các lệnh trong PowerShell:

ipconfig /release; ipconfig /renew

9
Họ sẽ chạy song song hay tuần tự?
Tarkus

19
Điều này sẽ chạy chúng tuần tự, cũng như toán tử & trong cmd.exe.
Bóp

43
Có sự khác biệt lớn mặc dù - ";" chạy lệnh thứ hai ngay cả khi lệnh đầu tiên thất bại.
Ivan

10
Như đã đề cập ở trên, đây cũng là hành vi của & trong cmd.exe.
Squeezy

7
@Rafi Có, hãy thử {Command-One -ea Stop} Bắt {Command-Two}
Dave_J

30

Dấu chấm phẩy sẽ liên kết các lệnh như câu trả lời trước đã nêu , mặc dù có một sự khác biệt chính đối với hành vi với &toán tử trong trình thông dịch lệnh kiểu MS-DOS.

Trong trình thông dịch lệnh, sự thay thế biến diễn ra khi dòng được đọc. Điều này cho phép một số khả năng gọn gàng như hoán đổi các biến mà không có tạm thời:

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

Sẽ dẫn đến:

2
1

Theo tôi biết, không có cách nào để sao chép hành vi này trong PowerShell. Một số người có thể cho rằng đó là một điều tốt.

Thực tế, có một cách để làm điều này trong PowerShell:

$b, $a = $a, $b

Nó sẽ dẫn đến một dòng hoán đổi các giá trị biến.


Dường như không hoạt động từ trường "Target" với tùy chọn -command trong phím tắt
rõ ràng là
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.