كيف يمكنني تنفيذ أوامر متعددة في سطر أوامر Windows بسطر واحد فقط؟
لذلك ، على سبيل المثال ، أقول إنني أريد إجراء تحديث SVN ثم انسخ جميع الملفات إلى موقع آخر ...
svn update; copy *.* c:\development\copy\
هذا لا يعمل بشكل واضح. هل هناك شخصية أو محدد مثل "؛" لأداء شيء مثل هذا؟
نعم هنالك. انها &.
&&
سينفذ الأمر 2 عند اكتمال الأمر 1 بشرط ألا يفشل.
سيتم تنفيذ &
بغض النظر.
إذا كنت تريد تنفيذ أوامر متعددة بسطر واحد ، حيث تبدأ أوامر start
، على سبيل المثال ، إذا كنت تريد تنفيذ أمر مثل هذا:
start "" netsh dump && pause
بعد ذلك ، تحتاج إلى القيام بذلك في خطوتين (حل سطر واحد في نهاية هذه الإجابة).
أولاً ، اكتب الأوامر إلى ملف دفعي مؤقت (في هذه الحالة ، يمكنك استخدام &
أو &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
لاحظ أنك بحاجة إلى "الهروب" من كل من "&"s
(علامات الاقحام) برمز "^"
للسماح بمعاملتها كأحرف عادية في أمر echo
. بدلاً من ذلك ، يمكنك إنشاء ملف دفعي مؤقت باستخدام محرر نصوص ، مثل المفكرة.
ثم ، استخدم start
لبدء ملف الدُفعات:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
ملاحظة: الزوج الفارغ من علامات الاقتباس المزدوجة هو لـ
"Title"
الذي سيتم عرضه في شريط العنوان لإطار الأوامر الذي سيتم فتحهstart
. هذه الوسيطة"Title"
هي تقنيًا اختياري وسيطة إلىstart
، لكنها في الواقع مطلوب ، إذا كان الأمر الذي سيتم تشغيلهstart
مزدوجًا. على سبيل المثال ، في المثال الثاني:
start "" "temporary foobar.cmd"
إذا تركت الزوج الفارغ من علامات اقتباس مزدوجة مثل هذا:
start "temporary foobar.cmd"
ثم
start
سيفتح نافذة أمر جديدة ، ويستخدم"temporary foobar.cmd"
كنافذة أمر جديدة"Title"
، و لا شيء سيتم تنفيذها في نافذة الأوامر الجديدة.)
إذا كنت ترغب في start
في انتظار اكتمال ملف الدُفعات (بعد أن يتم رفض pause
) ، قبل اكتمال start
، فأنت بحاجة إلى إضافة رمز /w
إلى الأمر start
:
start "" /w foobar.cmd
يمكنك وضع هذا معًا في سطر واحد وحتى إزالة (حذف) ملف الدُفعات المؤقت (foobar.cmd
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
لاحظ أنه إذا كنت تريد حذف ملف الدُفعات المؤقت ، فستحتاج إلى تشغيل start
مع رمز التبديل /w
، وإلا ، فسيتم حذف ملف الدُفعات المؤقت قبل أن تتاح له فرصة التشغيل.
على الأقل في MS-DOS 6.22 اعتدت على استخدام المفتاح Ctrl+T للحصول على نوع من رمز الفقرة. هذا يعمل تماما مثل & التي ذكرها Phoshi. هذا لن يعمل إلا إذا كان لديك doskey.exe قيد التشغيل.
نعم استخدم &
!
%command1% & %command2%
يدير كلا الأمرين
%command1% && %command2%
يدير الأمر الأول ، إذا نجح ذلك ، قم بتشغيل الأمر الثاني
%command1% || %command2%
يدير الأمر الأول ، إذا فشل ذلك ، قم بتشغيل الأمر ثانية
انظر هنا
في حالة رغبتك في التفاف الأمر الأول بعلامة if ولكنك لا تزال ترغب في تنفيذ الأمر الثاني بصرف النظر عن ذلك ، فعليك التفاف الأمر بـ cmd/c مثل هذا:
كمد/ج إذا وجدت abc. (rd/q abc) & echo hello
إذا لم تقم بادئة if مع cmd/c ، فسيصبح الأمر بالكامل جزءًا من if (الذي قد لا تريده).