كيفية إنشاء ملف دفعي في نظام التشغيل Windows باستخدام "ابدأ" بمسار وأمر بمسافات

StackOverflow https://stackoverflow.com/questions/72671

  •  09-06-2019
  •  | 
  •  

سؤال

أحتاج إلى إنشاء ملف دفعي يبدأ تشغيل تطبيقات وحدة تحكم متعددة في ملف Windows .cmd.يمكن القيام بذلك باستخدام أمر البدء.

ومع ذلك، الأمر لديه مسار فيه.أحتاج أيضًا إلى تمرير المعلمات التي تحتوي على مسافات أيضًا.كيف نفعل ذلك؟

على سبيل المثالملف دفعي

start "c:\path with spaces\app.exe" param1 "param with spaces"
هل كانت مفيدة؟

المحلول

في الواقع، لن ينجح مثاله (على الرغم من أنني اعتقدت في البداية أنه سينجح أيضًا).استنادًا إلى تعليمات أمر البدء، فإن المعلمة الأولى هي اسم نافذة موجه الأوامر التي تم إنشاؤها حديثًا، ويجب أن تكون المعلمة الثانية والثالثة هي المسار إلى التطبيق ومعلماته، على التوالي.إذا أضفت "" آخر قبل المسار إلى التطبيق، فيجب أن يعمل (على الأقل بالنسبة لي).استخدم شيئًا مثل هذا:

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

يمكنك تغيير الوسيطة الأولى لتكون ما تريد أن يكون عليه عنوان موجه الأوامر الجديد.إذا تم إنشاء تطبيق Windows، فلن يتم عرض موجه الأوامر، ولن يهم العنوان.

نصائح أخرى

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

جرب شيئًا مثل هذا:

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

عندما استخدمت الاقتراح أعلاه، لقد حصلت على:

لم يتم التعرف على 'c:\path' كأمر داخلي أو خارجي أو برنامج قابل للتشغيل أو ملف دفعي.

أعتقد أن علامة الاقتباس الثانية تمنع تشغيل الأمر.بعد بعض البحث أدناه الحل احفظ يومي:

start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

ومن المثير للاهتمام أنه يبدو أنه في Windows Embedded Compact 7، لا يمكنك تحديد سلسلة عنوان.يجب أن تكون المعلمة الأولى هي الأمر أو البرنامج.

عليك استخدام شيء مثل هذا:

ابدأ /d C:\Windows\System32\calc.exe

ابدأ /d "C:\Program Files\Mozilla

Firefox" firefox.exe يبدأ /d

"C:\ملفات البرنامج\Microsoft

مكتب\Office12" EXCEL.EXE

كما أنصحك باستخدام محرر ملفات دفعية خاص - دكتور باتشر

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

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

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top