سؤال

كيف يمكنني تشغيل ملف CMD أو .bat في الوضع الصامت؟أتطلع إلى منع ظهور واجهة CMD للمستخدم.

هل كانت مفيدة؟

المحلول

لقد اقترحت في سؤال StackOverflow طريقة ل تشغيل ملف دفعي في الخلفية (لم يتم عرض أي نوافذ DOS)

لابد أن ذلك قد أجاب سؤالك.

ها هو:


من البرنامج النصي الأول، اتصل بالبرنامج النصي الثاني باستخدام السطر التالي:

wscript.exe invis.vbs run.bat %*

في الواقع، أنت تقوم باستدعاء برنامج نصي vbs باستخدام:

  • [المسار]\اسم البرنامج النصي الخاص بك
  • جميع الوسائط الأخرى التي يحتاجها البرنامج النصي الخاص بك (%*)

بعد ذلك، سوف يقوم invis.vbs باستدعاء البرنامج النصي الخاص بك باستخدام الملف طريقة تشغيل Windows Script Host ()., ، الذي يأخذ:

  • إنتWindowStyle :0 تعني "النوافذ غير المرئية"
  • بانتظار العودة:خطأ يعني أن البرنامج النصي الأول الخاص بك لا يحتاج إلى الانتظار حتى انتهاء البرنامج النصي الثاني

راجع السؤال الخاص بالبرنامج النصي الكامل invis.vbs:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
                                                         ^
                             means "invisible window" ---| 

تحديث بعد تعليقات تامين:

إذا كنت في جلسة DOS وتريد تشغيل برنامج نصي آخر "في الخلفية"، فهذا أمر بسيط /b (كما هو مفصل في نفس السؤال المذكور) يمكن أن يكون كافيا:

يمكنك استخدام start /b second.bat لتشغيل ملف دفعي ثانٍ بشكل غير متزامن من الملف الأول الذي يشارك نافذتك الأولى.

نصائح أخرى

وتشمل عبارة

و@echo off

والحق في أعلى النصي الخفافيش.

استخدم BAT متقدمة لتحويل EXE من http://www.battoexeconverter.com

وهذا سوف يسمح لك لتضمين أي ثنائيات إضافية مع الملف الدفعي في لموقف واحد وحده EXE صامتة تماما ولها مجانية

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

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 
Set WshShell = Nothing 

ونسخ الأسطر أعلاه إلى محرر وحفظ الملف مع الملحق .vbs. تعديل اسم ملف .bat والمسار وفقا لذلك.

استخدم محول Bat To Exe للقيام بذلك

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(يختار رابط التحميل المباشر)

1 - افتح Bat to Exe Converter، وحدد ملف Bat الخاص بك.
2 - في قائمة الخيارات حدد "تطبيق غير مرئي"، ثم اضغط على زر الترجمة.

منتهي!

يحاول SilentCMD.هذا برنامج صغير مجاني يقوم بتنفيذ ملف دفعي دون عرض نافذة موجه الأوامر.

إذا كنت تريد تشغيل PROMT القيادة في وضع صامت، ثم هناك أمر فبس بسيط:

Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"

وإذا أردت إلى فتح رابط في كمد بصمت ، أو ثم هنا هو رمز:

Set WshShell = WScript.CreateObject("WScript.Shell") 
Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0)
'wait 10 seconds
WScript.sleep 10000 
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"

وأنا واثق جدا وأنا أحب هذه الطريقة أفضل. نسخ ولصق رمز أدناه في ملف & .vbs &. من هناك سوف استدعاء ملف دفعي ... لذلك تأكد من تعديل السطر الأخير لتحديد المسار واسم الملف الدفعي (والذي يجب أن يحتوي على الملف الذي ترغب في إطلاق أو تنفيذ الإجراءات تحتاج إلى تنفيذ)

Const HIDDEN_WINDOW = 12 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objStartup = objWMIService.Get("Win32_ProcessStartup") 

Set objConfig = objStartup.SpawnInstance_ 
objConfig.ShowWindow = HIDDEN_WINDOW 
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") 
errReturn = objProcess.Create("C:\PathOfFile\name.bat", null, objConfig, intProcessID)

وعملت بالتأكيد بالنسبة لي. ورحب تعليقات:)

أنا خلقت RunApp للقيام بمثل هذه المهمة واستخدامها أيضًا في بيئة الإنتاج الخاصة بي، آمل أن يكون ذلك مفيدًا.

التكوين مثل أدناه:

ملف:config.arg

:style:hidden

MyBatchFile.bat
arg1
arg2

والانطلاق runapp.exe بدلاً من.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top