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


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

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?

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ể làm một kịch bản, nhưng tôi đang tìm kiếm một thứ gì đó hơn một chút.


198
2018-06-26 17:24


gốc


Lưu ý thú vị: Giữa các cổng nối tiếp và Serialization, câu hỏi này hầu như không thể tìm kiếm. - David
Để được nerdy ... Nó rất dễ dàng để tìm kiếm nó. Nó chỉ là khá khó khăn để có được một bộ liên quan của số truy cập. :) (+1 cho câu hỏi tuyệt vời) - Konrad Viltersten


Các câu trả lời:


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

ipconfig /release; ipconfig /renew

284
2018-06-26 17:28



Chúng sẽ chạy song song hay tuần tự? - Tarkus
Điều này sẽ chạy chúng tuần tự, cũng như toán tử & trong cmd.exe. - Squeezy
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 bị lỗi. - Ivan
Như đã đề cập ở trên, đây cũng là hành vi của & trong cmd.exe. - Squeezy
Có cách nào để lệnh thứ hai chỉ chạy nếu lệnh đầu tiên không thành công? - Rafi


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ó sự khác biệt quan trọng đố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 đổi 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ư trao đổ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 để tái tạo hành vi này trong PowerShell. Một số có thể cho rằng đó là một điều tốt.

Trên thực tế, có một cách để thực hiện điều này trong PowerShell:

$b, $a = $a, $b

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


28
2017-09-10 17:16



Dường như không hoạt động từ trường "Mục tiêu" với tùy chọn -command trong lối tắt mặc dù - clearlight