"কমান্ড উইন্ডো" চালু না করে ব্যাচ ফাইলটি কীভাবে চালানো যায়? [প্রতিলিপি]


131

এই প্রশ্নের ইতিমধ্যে এখানে একটি উত্তর আছে:

উইন্ডোজ এক্সপি-তে, আমি একটি "কালো উইন্ডো" ছাড়াই শর্টকাটের মাধ্যমে একটি ব্যাচ (.bat বা .Cmd) ফাইল চালাতে পারি?


6
আপনি কি জিজ্ঞাসা করছেন যে আপনি ব্যাট ফাইল চালানোর সময় কমান্ড উইন্ডোটি প্রদর্শিত হতে বাধা দিতে পারবেন কিনা?
এরিক

6
হ্যাঁ, আপনি খুব সহজেই সেন্টিমিডি.এক্সই শর্টকাটে প্রোপার্টি ব্যবহার করে আউটপুট উইন্ডোর ডিফল্ট রঙটি সহজেই পরিবর্তন করতে পারেন। (হ্যাঁ এটি একটি রসিকতা ...)
টবি জে

উত্তর:


86

উদাহরণস্বরূপ, wscript হিসাবে নিম্নলিখিতটি সংরক্ষণ করুন, hidecmd.vbs আপনার ব্যাচ ফাইলের নামের সাথে "টেস্টিং.বাট" প্রতিস্থাপনের পরে।

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

এর দ্বিতীয় প্যারামিটারটি oShell.Runহ'ল intWindowStyleপ্রোগ্রামটির উইন্ডোটির উপস্থিতি নির্দেশ করে এবং লুকানো উইন্ডোর জন্য শূন্য মান।

রেফারেন্সটি এখানে http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx


তৃতীয় লাইনটি কি হবে: strArgs = "cmd / c FILEPATH \ test.bat"?
ড্যান জেড

1
অদৃশ্য থাকা অবস্থায় এলিভেটেড মোডে ব্যাট চালানোর কোনও উপায়?
লরেন্স সোয়ার্ট

.batএই পদ্ধতিটি ব্যবহার করে প্রশাসক হিসাবে ফাইল কীভাবে চালানো যায় ?
মেহেদী দেহঘানি

44

এটি শাজির উত্তরের সরলকরণ মাত্র। আপনি এইভাবে একটি ভিবিএস স্ক্রিপ্ট (.vbs) স্ক্রিপ্টের মাধ্যমে আপনার ব্যাচ স্ক্রিপ্টটি চালাতে পারেন :

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

এটি কোনও কমান্ড উইন্ডো প্রদর্শিত না করে আপনার ব্যাচ ফাইলটি কার্যকর করবে।


.batএই পদ্ধতিটি ব্যবহার করে প্রশাসক হিসাবে ফাইল কীভাবে চালানো যায় ?
মেহেদী দেহঘনি

@ মেহেদীদেহগানি সম্পত্তি> সুরক্ষা> অ্যাডমিন হিসাবে চালিত। এটি যদি কেবল এক্স বা অ্যাপ্লিকেশানের জন্য কাজ করে তবে ওহ ওয়েলস।
টেলর স্পার্ক

21

কেবলমাত্র "উইন্ডোজ স্ক্রিপ্টিং ব্যবহার করুন" এর উত্তরগুলিতে প্রসারিত করার জন্য (যা আমি ইতিমধ্যে অন্তর্নির্মিত বলে বিবেচনা করি) এটি কীভাবে একক র‍্যাপার স্ক্রিপ্ট ব্যবহার করে এবং প্যারামিটার হিসাবে "আসল" ব্যাচ ফাইলটির নাম পাস করার মাধ্যমে তা করা যায়। অতিরিক্ত পরামিতিগুলি ব্যাচ ফাইলে দেওয়া হবে।

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

উদাহরণস্বরূপ উপরের ফাইলটি NoShell.vbsকোথাও সেভ করুন তারপরে কল করুন:

NoShell.vbs c:\foo\my_batch_file.bat

অবশেষে, আপনি এটি কোথাও থেকে চালাচ্ছেন যা .vbs ফাইলটি বুঝতে পারে না (যেমন ভিজ্যুয়াল স্টুডিওতে "বাহ্যিক সরঞ্জাম"), আপনি C:\Windows\System32\wscript.exeভিবিএস ফাইলটির সাথে তার প্রথম প্যারামিটার হিসাবে কল করতে চান এবং দ্বিতীয় হিসাবে ব্যাচ ফাইল।


6
যারা তৈরি করেন তাদের প্রতিটি নতুন ব্যাট ফাইলের জন্য একটি নতুন ভিবিএস ফাইল তৈরি করার ধারণা এবং ধারণা অপছন্দ করে, কারণ শীর্ষ দুটি উত্তরগুলির মধ্যে যে কোনও একটিকে অবশ্যই ব্যবহার করা উচিত, এটি সঠিক সমাধান। একাধিক ভিবিএস ফাইলের পরিবর্তে আপনার একাধিক শর্টকাট থাকবে। প্রতিটি নতুন ব্যাট ফাইলের জন্য, ভিবিএস ফাইলের একটি শর্টকাট তৈরি করুন, তার ডানদিকে ক্লিক করুন, বৈশিষ্ট্যগুলি> শর্টকাটগুলি ট্যাবটি নির্বাচন করুন এবং টার্গেট বক্সে ব্যাট ফাইলটির পথটি আগেই উপস্থিত রয়েছে এমনভাবে প্রবেশ করুন, ঠিক উপরে প্রদর্শিত বা পছন্দ মতো যেমন vbs ফাইলটি এই যদি শর্টকাট একই জায়গায় নয়: "C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
রোলো

যদি ব্যাট ফাইলের ফাইলের পাথের একটি স্থান থাকে তবে কীভাবে এটি vBS ফাইলের শর্টকাটের মাধ্যমে বলা যেতে পারে? উদাহরণস্বরূপ: "C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat। আমি পথটির জন্য যা চেষ্টা করি তা বিবেচনা না করে - এগুলির চারপাশে ডাবল উদ্ধৃতি, জায়গার জায়গায়% 20, বা two দুটির সংমিশ্রণ কিছুই কার্যকর করে না। আমি একটি ত্রুটি বার্তা পেয়েছি যা আমাকে জানিয়েছে যে ফাইলটি পাওয়া যায় না বা কিছুই ঘটে না। এটি কি আমার প্রান্তে ব্যবহারকারীর ত্রুটির কারণে, শর্টকাটগুলির জন্য টার্গেট ক্ষেত্রের সাথে একটি উইন্ডোজ সীমাবদ্ধতা, বা vbs স্ক্রিপ্টের কোনও সমস্যা যেখানে এটি ফাঁকা জায়গাগুলির সাথে সঠিকভাবে ফাইল পাথ পরিচালনা করে না?
রোলো

@ রোলো আমি স্ক্রিপ্টটি আপডেট করেছি যাতে আগত প্যারামিটারগুলির কোনওটির যদি ফাঁকা জায়গা থাকে, তবে এটি চারপাশে উদ্ধৃতি যুক্ত হবে। সুতরাং আপনি যখন কল করার সময় ব্যাচ ফাইলে যাওয়ার পথটি কোট দিয়ে মোড়ানো করতে চান, তবে এটি কল করার আগে এটি একটি একক যুক্তি হিসাবে বিবেচিত হবে এবং পুনরায় মোড়ানো হবে।
টবি জে

9

আপনি ছোট করতে শর্টকাটের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন।

এটি সম্পূর্ণ অদৃশ্যভাবে চালানোর জন্য আপনার উইন্ডোজ স্ক্রিপ্টিংয়ের মতো অন্য কিছু প্রয়োজন।


1
আপনার প্রথম পরামর্শটি আমি সর্বদা এটি করেছি।
মার্টিনো

8

'/ বি' বিকল্পটি দিয়ে শুরু করুন । উদাহরণ স্বরূপ:

@echo off
start /B go.bat

25
start /bএকটি নতুন তৈরি করার পরিবর্তে কেবলমাত্র বরাদ্দকৃত কনসোলে প্রোগ্রামটি চালাবে। ব্যাচটি যেহেতু সেন্টিমিডি দিয়ে চালাতে হবে সেভাবেই আপনি একটি নতুন পেয়ে যাবেন (যার ফলে [অবাক করে দিয়ে] কনসোল খোলে)।
জোয়

@ জো হ্যাঁ, তবে এটি শেল এক্সিকিউশন (যেমন SYSTEMসি / সি ++ এর মতো) এর মাধ্যমে অন্যান্য অ্যাপ্লিকেশনগুলি থেকে ব্যাচ ফাইলগুলি চালু করতে খুব কার্যকর ।
টমো জাটো

1
@ টোম্যাজাটো: আপনি কেবলমাত্র সেই ক্ষেত্রে সরাসরি ব্যাচ ফাইলটি কল করতে পারেন, বা যদি আপনি কোনও প্রক্রিয়া উত্সাহিত করতে ব্যবহার করেন তবে প্রথমে শেল তৈরি করে না, ব্যবহার করুন cmd /c foo.cmd। এই startপরিস্থিতিতে ব্যবহার করার একেবারেই দরকার নেই , এবং আমি যুক্তি দিচ্ছি যে এটির systemপক্ষে ব্যবহার করা উচিত নয় CreateProcess। ব্যাচ ফাইল চালু করে আপনি ইতিমধ্যে একটি প্ল্যাটফর্মের উপর নির্ভরশীল, আপনি কাজের জন্য আরও ভাল সরঞ্জামগুলি ব্যবহার করতে পারেন।
জোয়

@ জোয়াই ধন্যবাদ একটি গুচ্ছ, এর cmd /cআগে কখনও শুনেনি । আমার ক্ষেত্রে সেন্টিমিডে কমান্ডটি আমার প্রয়োজন ছিল, তবে আমি এখনও অবধি সমস্ত স্ট্যাকেক্সচেঞ্জের উত্তর খুঁজে পেয়েছি, অন্য ব্যাচের ফাইল চালাচ্ছে এমন একটি ব্যাচের ফাইলটির শুরুতে শীর্ষ উত্তর রয়েছে ...
T_D

start /b go.bat একটি নতুন কনসোল বরাদ্দ করবে না (যেমন কনহস্ট.এক্সির উদাহরণ - বা উইন্ডোজ before এর আগে csrss.exe এর একটি থ্রেড)। তবে এটি ব্যাঘাত সৃষ্টি করবে যেহেতু ব্যাচ স্ক্রিপ্টটি একই কনসোলের সাথে সংযুক্ত সেমিডি.এক্সএর একটি নতুন উদাহরণ দিয়ে চালিত হয়েছে । শেলের উভয় দৃষ্টান্ত কনসোল থেকে ইনপুট পড়ার প্রতিযোগিতা করবে, সাধারণত পর্যায়ক্রমে। দ্বিতীয় উদাহরণটির জন্য অপেক্ষা করার জন্য এটি /w(উদাহরণস্বরূপ start /b /w go.bat) প্রয়োজন , যা ব্যবহার cmd /cকরে ব্যবহার করার অনুরূপ system। এছাড়াও, যদি আপনি কল করছেন CreateProcess, go.batসরাসরি চালান । দরকার নেই cmd /c
এরিক সান

6

বিনামূল্যে জিপিএল ওপেন সোর্স "হাইড প্রসেস তৈরি করুন"

http://www.commandline.co.uk/chp/

মাইক্রোসফ্ট সুরক্ষা প্রয়োজনীয়তা এবং সম্ভবত বেশিরভাগ অন্যান্য ভাইরাস / ম্যালওয়্যার স্ক্যানারগুলি এক্সিকিউটেবল, chp.exe কে একটি ভাইরাস হিসাবে বিবেচনা করবে কারণ এটি কোনও উইন্ডো বা টাস্ক বার বোতাম প্রদর্শন করা থেকে আপনার নির্দিষ্ট করা প্রোগ্রামকে যেমন ভাইরাস দ্বারা আড়াল করে vir

এটি কোনও ভাইরাস নয়। উদাহরণস্বরূপ এটি টাস্ক ম্যানেজারে উপস্থিত হওয়া থেকে লক্ষ্য প্রক্রিয়াটি আড়াল করে না। এবং অবশ্যই উত্স কোডটি অন্তর্ভুক্ত করা হয়েছে যাতে আপনি দেখতে পান যে এটি খুব ছোট এবং আপনি যা কিছু প্রোগ্রাম দিন তা চালান না।

আপনি এমনকি বিশ্বাস করতে হবে না যে অন্তর্ভুক্ত chp.exe সত্যই উত্স থেকে নির্মিত হয়েছিল। আপনি এগিয়ে যান এবং অন্তর্ভুক্ত chp.exe বাতিল করতে পারেন এবং উত্স থেকে আপনার নিজস্ব সংকলন করতে পারেন, এবং এটি করার জন্য প্রয়োজনীয় সমস্ত সরঞ্জাম এমনকি বিনামূল্যে এবং ডাউনলোডযোগ্য।


আপনি .bat বা .Cmd ফাইলটিতে কেবল একটি শর্টকাট তৈরি করতে পারেন, তারপরে শর্টকাট, প্রোপার্টি, শর্টকাট ট্যাব, রান: মিনিমাইজড এ ডান ক্লিক করুন। তারপরে নির্ধারিত কার্যগুলিতে, সরাসরি .bat / .Cmd ফাইলের পরিবর্তে শর্টকাটটি ব্যবহার করুন। এটি উইন্ডোটিকে পপিং করতে বাধা দেবে, তবে একটি টাস্কবারের বোতামটি এখনও উপস্থিত হবে।


6

আপনি উইন্ডো স্ক্রিপ্টিং যেমন অটোআইটি ব্যবহার করতে পারেন ।

উদাহরণ হিসাবে, কেবল এটি অটোআইটি স্ক্রিপ্ট সম্পাদককে লিখুন। এটা মোটামুটি সহজ

Run("C:\test\batchfile.bat", "", @SW_HIDE)

আপনি যদি এটি একটি লুপে চালাতে চান,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

এটি .exe হিসাবে সংকলন করুন - এবং আপনি সম্পন্ন করেছেন।


তেমনি, অটোহটকিতে :

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide 

5

ব্যবহারের লুকানো স্টার্ট (দাম নির্ধারণ $ 20)

লুকানো শুরু - কনসোল উইন্ডো বা ইউএসি প্রম্পট ছাড়াই অ্যাপ্লিকেশন এবং ব্যাচ ফাইলগুলি চালান

কনসোল অ্যাপ্লিকেশন এবং ব্যাচ ফাইলগুলি নিয়মিত উইন্ডোজ স্টার্টআপে বা একটি সময়সূচীতে চালিত হয়। এর প্রধান অসুবিধা হ'ল প্রতিটি অ্যাপ্লিকেশন একটি কনসোল উইন্ডো খোলে যা স্ক্রিনে ফ্লিকার হয়। হাইড স্টার্ট (বা Hstart) একটি লাইটওয়েট কমান্ড লাইন ইউটিলিটি যা আপনাকে ব্যাকগ্রাউন্ডে কোনও উইন্ডো ছাড়াই কনসোল অ্যাপ্লিকেশন এবং ব্যাচ ফাইলগুলি চালাতে, উইন্ডোজ 7 এবং ভিস্তার অধীনে ইউএসি সুবিধার উচ্চতা পরিচালনা করতে, সমান্তরাল বা সুসংগতভাবে একাধিক কমান্ড শুরু করতে এবং আরও অনেক কিছু করতে দেয় ।

এখানে চিত্র বর্ণনা লিখুন


এটি একটি খুব সুন্দর নকশা করা এবং দরকারী অ্যাপ্লিকেশন।
গুরু জোশ

5

কোনও অতিরিক্ত প্রোগ্রাম ব্যবহার না করে সহজ সমাধান।

  1. আপনি যে ব্যাচ ফাইলটি নির্বাহ করতে চান এবং এটি পরীক্ষা করতে চান তা তৈরি করুন।
  2. এটির জন্য একটি শর্টকাট তৈরি করুন।
  3. শর্টকাটের বৈশিষ্ট্যগুলি সম্পাদনা করুন: শর্টকাট ট্যাবে, রান মিনিমাইজড চয়ন করুন। এটির জন্য একটি গরম কী বরাদ্দ করুন এবং আপনি শেষ করেছেন!

শুভকামনা!


7
এটি ওপি-র সমস্যার সমাধান নয়। তার মাঝে একটি পার্থক্য কমানোর এবং গোপন
nixda

আপনি যদি ডান আইকনটি ব্যবহার করতে শর্টকাটটি পরিবর্তন করেন তবে টাস্ক বারের সংক্ষিপ্ত স্প্ল্যাশটি আসলে একটি দুর্দান্ত অনুস্মারক যা শুরু হচ্ছে।
যে কেউ

এটি আমার সমস্যার জন্য একটি সুন্দর এবং পরিষ্কার সমাধান ! ধন্যবাদ!
দিমিত্রি_রোমানভ

হ্রাস করা হচ্ছে ... হি।
gumuruh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.