سؤال كيف أقوم بتشغيل عدة أوامر على سطر واحد في PowerShell؟


في أمر cmd ، يمكنك تشغيل أمرين على سطر واحد كما يلي:

ipconfig /release & ipconfig /renew

عندما أقوم بتشغيل هذا الأمر في PowerShell ، أحصل على:

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

هل لدى PowerShell مشغل يسمح لي بإنتاج المكافئ بسرعة & في موجه كمد؟

أي طريقة لتشغيل الأمرين في سطر واحد سوف تفعل. أعلم أنه بإمكاني كتابة نص برمجي ، لكنني أبحث عن شيء أكثر قليلاً من الكفة.


206
2018-06-26 17:24


الأصل


ملاحظة ممتعة: بين المنافذ التسلسلية التسلسل ، هذا السؤال يكاد يكون من المستحيل البحث عنه. - David
أن تكون نرديًا ... من السهل جدًا البحث عنها. من الصعب جدًا الحصول على مجموعة ذات صلة من النتائج. :) (+1 لسؤال كبير) - Konrad Viltersten


الأجوبة:


استخدم أوامر فاصلة منقوطة في سلسلة في PowerShell:

ipconfig /release; ipconfig /renew

295
2018-06-26 17:28



هل سيتم تشغيلها بالتوازي أو بالتسلسل؟ - Tarkus
هذا سيشغلهم بالتتابع ، كما يفعل المشغل في cmd.exe. - Squeezy
هناك فرق كبير رغم ذلك - "؛" يدير الأمر الثاني حتى إذا فشل الأول. - Ivan
كما ذكر أعلاه ، هذا أيضًا سلوك & في cmd.exe. - Squeezy
هل هناك طريقة لتشغيل الأمر الثاني فقط إذا فشل الأول؟ - Rafi


الفاصلة المنقوطة ستربط الأوامر كما ذكرت الإجابة السابقة ، على الرغم من وجود اختلاف رئيسي في السلوك مع & عامل في مترجم الأوامر نمط 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

سينتج عنه تبديل سطر واحد لقيم المتغير.


28
2017-09-10 17:16



لا يبدو أن العمل من حقل "الهدف" مع -الطلب خيار في اختصار رغم ذلك - clearlight