سؤال كيف يمكنني تنفيذ سطر أوامر Windows في الخلفية؟


كيف يمكنني تنفيذ سطر أوامر Windows في الخلفية ، دون أن يتفاعل مع المستخدم النشط؟


131
2017-10-12 06:09


الأصل


هل يمكنك تحديد ما تريد القيام به؟ هل تريد تنفيذ أمر في سطر الأوامر في الخلفية أم تريد تنفيذ سطر الأوامر بالكامل في الخلفية ، لذا فهو غير مرئي من سطح المكتب؟ - omnibrain
أحتاج إلى قصبتي أداء أمر على سطر الأوامر في الخلفية أو هل تريد تنفيذ سطر الأوامر بأكمله في الخلفية - Mohammad AL-Rawabdeh
التكرارات هذا السؤال على ServerFault. - Dan Dascalescu


الأجوبة:


سؤالك غامض جدا ، ولكن هناك آخر على ServerFault التي قد تحتوي على المعلومات التي تحتاجها. يوضح الجواب هناك كيفية تشغيل نافذة ملف دفعي مخفية:

يمكنك تشغيلها بصمت باستخدام ملف Windows Script بدلاً من ذلك. الركض   تسمح لك الطريقة بتشغيل برنامج نصي في الوضع غير المرئي. إنشاء .vbs   ملف مثل هذا واحد

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

وجدولة ذلك. تعيّن الوسيطة الثانية في هذا المثال الإطار   قلم المدقة. 0 تعني "إخفاء النافذة".


26
2017-10-12 06:30



هذا ممتاز. SetPoint for Logitech أبدا ، أبدا ، يبدأ بنوافذ. لقد بدأت تشغيله يدويًا لمدة 3 سنوات حتى الآن. هل يهم أين تكون الدفعة؟ لقد رأيت بعض الناس يضعون هذا النوع من الملف الدفعي في C ، أو الجذر. - ejbytes


لقد تأخرت قليلاً لكني التقيت بهذا السؤال أثناء البحث عن الإجابة بنفسي ووجدت هذا:

START /B program

التي ، على Windows ، هي الأقرب إلى أمر Linux:

program &

من نظام مساعدة وحدة التحكم:

C:\>HELP START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application.

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

لجعله لا يتفاعل مع المستخدم ، يمكنك إعادة توجيه الإخراج إلى ملف:

START /B program > somefile.txt

192
2018-05-03 14:28



تعجبني هذه الإجابة على نحو أفضل لأنها لا تفتح نافذة أوامر أخرى - wisbucky
يبدو أن هذا لا يعمل بالنسبة لي ، على ما يبدو فقط لإنشاء نسخة جديدة كمد [؟] ولكن إذا قمت بتشغيل مثل start /B "" program ثم عملت ... - rogerdpack
rogerdpack هذا صحيح. لسبب ما مع Windows 7 ، هذا هو تنسيق الأمر. "" هي معلمة العنوان الإلزامية. - ejbytes
لسوء الحظ ، إذا خرجت من نافذة الصدفة التي أفرزت بها العملية ، يبدو أن العملية تنتهي أيضًا. - palswim
@ Qwerty: انظر إلى MSDN لـ SetConsoleCtrlHandler - Zan Lynx


أظن أنك تقصد: تشغيل شيء ما في الخلفية واستعادة سطر الأوامر فورًا مع استمرار تشغيل البرنامج.

START "" program

وهو ما يعادل يونكس من

program &

59
2017-09-30 11:44



ما هو مكافئ fg؟ هل يمكننا إغلاق موجه الأوامر وسيستمر عمل porgram؟ - Nenotlep
أيضا ، أريد تشغيل برنامج في موجه الأوامر والعودة إليه من وقت لآخر ، كما هو الحال في الشاشة - هل هذا ممكن مع هذا؟ أحتاج إلى أن أكون قادراً على إغلاق موجه الأوامر ولكن مع استمرار تشغيل البرنامج قيد التشغيل. - Nenotlep
ما هذه المعلمة فارغة من start؟ لا يعمل بدونها (ينفذ فقط أمر قيادة جديد) ، لكن startمساعدة لا يقول أي شيء عن ذلك ، فإنه ينص على جميع المعلمات optoinional (أو أنا لا أفهمها). - Dawid Ferenczy
DawidFerenczy start يعمل بدون المعلمة الفارغة بالنسبة لي ، ولكن يبدو أنني أحصل على قذائف ذات تكوين منفصل عندما أستخدم المعلمة الفارغة ، كإعداد قمت به عندما لم يكن لديّ المعلمة الفارغة لا تستخدم عندما أستخدم الفارغة معامل. أتساءل لماذا يستخدمون تكوينات منفصلة؟ - HelloGoodbye
Paul START "" program يبدأ الأمر في محطة جديدة بالنسبة لي ، بينما program & في يونيكس يدير الأمر في وطباعة الإخراج إلى نفس المحطة. - HelloGoodbye


START /MIN program 

ما سبق هو أقرب مع نظيره في يونكس program &


10
2017-09-13 06:55





يمكنك استخدام هذا البرنامج النصي PowerShell (المعلق!):

# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc

احفظه ك .ps1 ملف. بعد تمكين تنفيذ البرنامج النصي (راجع تمكين البرامج النصية في علامة PowerShell wiki) ، يمكنك تمريرها واحدة أو سلسلتين: اسم الملف القابل للتنفيذ واختياريا سطر الحجج. فمثلا:

.\hideproc.ps1 'sc' 'stop SomeService'

أؤكد أن هذا يعمل على نظام التشغيل Windows 10.


5
2017-09-01 22:20



نعم بداية / ب لم يعد يعمل. - Sajuuk


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


1
2017-09-30 14:00



كيف تفعل ذلك؟ - barlop
بدلا من ذلك يمكنك جعلها مهمة مجدولة - لوحة التحكم -> أدوات إدارية -> المهام المجدولة أو استخدام schtasks الأمر في نظام Windows XP والإصدارات الأحدث (تحذير: schtasks معقد). - LawrenceC


هذه هي الطريقة التي يدخل بها خادم PHP الداخلي إلى الخلفية. لذلك يجب أن تعمل من الناحية الفنية للجميع.

start /B "" php -S 0.0.0.0:8000 &

شكر


1
2017-07-09 04:30