প্রশ্ন একটি উইন্ডো ছাড়া একটি নির্ধারিত কাজ একটি .bat ফাইল চালান


আমার একটি নির্ধারিত টাস্ক আছে যা একটি ব্যাচ স্ক্রিপ্ট চালু করে robocopy প্রতি ঘন্টা. প্রতিবার যখন এটি একটি উইন্ডো চালায় তখন রোবোকপি এর আউটপুট সহ ডেস্কটপে পপ আপ হয়, যা আমি দেখতে চাই না।

আমি নির্ধারিত কাজ রান করে উইন্ডো ছোট করা প্রদর্শিত করতে পরিচালিত

cmd /c start /min mybat.bat

কিন্তু যে আমাকে প্রতি ঘন্টা একটি নতুন কমান্ড উইন্ডো দেয়। আমি এই দ্বারা বিস্মিত ছিল ,. cmd /c "স্ট্রিং দ্বারা নির্দিষ্ট কমান্ড বহন করে এবং তারপর বাতিল" - আমি ডক্স ভুল বোঝাবুঝি আবশ্যক।

এটি একটি cmd উইন্ডো popping ছাড়া একটি ব্যাচ স্ক্রিপ্ট চালানোর একটি উপায় আছে কি?


140
2018-05-17 09:00


উত্স


আমি এই একটি আরো উত্তম উত্তর পাওয়া যায় নি stackoverflow.com/questions/6568736/... - Efekt


উত্তর:


পরিবর্তে আপনি এটি একটি উইন্ডোজ স্ক্রিপ্ট ফাইল ব্যবহার করে নীরবভাবে চালাতে পারে। রান পদ্ধতি আপনাকে অদৃশ্য মোডে একটি স্ক্রিপ্ট চালানোর অনুমতি দেয়। একটা তৈরি কর .vbs এই এক মত ফাইল

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

এবং এটা সময়সূচী। এই উদাহরণে দ্বিতীয় যুক্তি উইন্ডো শৈলী নির্ধারণ করে। 0 মানে "উইন্ডো লুকান।"

সম্পূর্ণ সিনট্যাক্স রান পদ্ধতি:

 object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

যুক্তি:

  • বস্তু: WshShell বস্তু।
  • strCommand: স্ট্রিং মান আপনি চালাতে চান কমান্ড লাইন নির্দেশ করে। আপনি যে এক্সিকিউটেবল ফাইলটি পাস করতে চান সেগুলি অবশ্যই অন্তর্ভুক্ত করতে হবে।
  • intwindow শৈলী: ঐচ্ছিক। ইন্টিগ্রার মান প্রোগ্রাম এর উইন্ডো চেহারা দেখাচ্ছে। উল্লেখ্য যে সমস্ত প্রোগ্রাম এই তথ্য ব্যবহার করে না।
  • bWaitOnReturn: ঐচ্ছিক। আপনার স্ক্রিপ্টে পরবর্তী বিবৃতিটি চালিয়ে যাওয়ার আগে স্ক্রিপ্টটির কার্য সম্পাদন শেষ হওয়া উচিত কিনা তা নির্দেশ করে বুলিয়ান মানটি নির্দেশ করে। সত্য হিসাবে সেট করা হলে, প্রোগ্রামটি শেষ না হওয়া পর্যন্ত স্ক্রিপ্ট নির্বাহটি হাট করে এবং প্রোগ্রামটি যে কোন ত্রুটির কোড প্রদান করে তা চালায়। যদি মিথ্যাতে (ডিফল্ট) সেট করা থাকে, রান পদ্ধতিটি প্রোগ্রামটি শুরু করার পরে অবিলম্বে ফেরত পাঠায়, স্বয়ংক্রিয়ভাবে 0 ফিরে (কোন ত্রুটি কোড হিসাবে ব্যাখ্যা করা হবে না)।

142
2018-05-17 09:08



+1, ঠিক একই জিনিস লিখেছেন - Sam Cogan
আপনি এটা মুছে ফেলা আগে আমি এটা দেখেছি। আমি অনুমান আমরা উভয় bots হয়। ;-) - splattne
ব্যবহারকারীর নাম, আমি সৎভাবে মনে করি স্যাম আমার চেয়ে অনেক বেশি যোগ্য। কিন্তু যাই হোক না কেন আপনাকে ধন্যবাদ! এবং একই বাক্য মধ্যে আমাকে এবং জন স্কিট উল্লেখ করবেন না। এটা নিন্দা! ;-) - splattne
প্রশ্নটি "কোন সিএমডি উইন্ডোটি পপ আপ না করে ব্য্যাচ স্ক্রিপ্ট চালানোর উপায় আছে?" এটি একটি খুব সরাসরি উত্তর দেয়: এটি একটি উইন্ডোজ স্ক্রিপ্ট ফাইল ব্যবহার করে চালান। - Mark Meuer
@ আপনার অনুমান আছে যদি আপনার পাথটি স্পেস থাকে তবে ডবল উদ্ধৃতিগুলি প্রয়োজন। - splattne


আপনি একটি নির্ধারিত কাজ হিসাবে এই চলমান হয়? যদি তাই এটি একটি পৃথক ব্যবহারকারী অ্যাকাউন্ট হিসাবে চালানোর জন্য সেট করা হয় তবে এটি লগ-ইন ব্যবহারকারীর কাছে দৃশ্যমান হবে না। যদি স্ক্রিপ্টটিকে উইন্ডোজ AUTH (ফাইল শেয়ার বা মুদ্রকগুলির মতো) আইটেমগুলিতে কোনও নেটওয়ার্ক অ্যাক্সেসের প্রয়োজন হয়, তবে আপনি এটি "এনটি কর্তৃপক্ষ \ সিস্টেম" হিসাবে চালাতে পারেন এবং পাসওয়ার্ডটি ফাঁকা রাখতে পারেন। উইন্ডোজ 7 এ, ব্যবহারকারীকে সিস্টেমে সেট করুন এবং ঠিক আছে টিপুন।

(যদি আপনি রোবোকপি ব্যবহার করছেন তবে আপনাকে সম্ভবত একটি বাস্তব ব্যবহারকারী ব্যবহার করতে হবে ...)

জেআর


56
2018-05-17 09:13



ধন্যবাদ - এই .vbs বিকল্পের চেয়ে আমার জন্য কম ঝামেলা ছিল। - mackenir
আমি সিস্টেমে ব্যবহারকারী হিসাবে "চালান" সেট করেছি (যা পরে এটি NT এনটাইটটি সিস্টেমের পরিবর্তন করে) এবং এটি আমার জন্য কাজ করে। আমার নির্ধারিত টাস্ক চালানোর সময় আমি আর পপআপ সিএমডি উইন্ডো দেখি না। ধন্যবাদ! - Ryan Stille
+1, এই মার্জিত। ব্যবহারকারীর নাম হিসাবে "সিস্টেম" প্রবেশ করতে ভুলবেন না, তারপর Win7 আপনার জন্য বিশ্রাম করে। মনে রাখবেন আপনি নেটওয়ার্কে নেটওয়ার্ক অ্যাক্সেস পাবেন না, শুধু নেটওয়ার্কে শেয়ার করবেন না এবং উইন্ডোজ AUTH প্রয়োজন এমন জিনিসগুলিতেও নয়। - samsmith
সিস্টেম ব্যবহারকারী সহজ এবং মার্জিত, মহান টিপ! +1! - Matteo Conta
দেখ সামান্য-Privilege প্রশাসনিক মডেল বাস্তবায়ন। সিস্টেম একাউন্টের ব্যবহার কি এটিকে স্বল্প-বিশেষাধিকার নীতির লঙ্ঘন করে? যদি তাই হয় প্রশাসক জানতে হবে না অধিকাংশ পরিস্থিতিতে এই কাজ। - user34660


কেবলমাত্র ব্যবহারকারীর লগ ইন আছে কিনা তা চালান "হিসাবে নির্ধারিত সময়সূচি কনফিগার করুন"।


28
2017-10-04 20:06



পারফেক্ট! আপনি এমনকি শংসাপত্র সঞ্চয়স্থান নিষ্ক্রিয় করতে পারেন এবং তারপরে সিস্টেমটি চালানোর চেয়ে এটি আরও সুরক্ষিত হচ্ছে! - binki


আপনি চেষ্টা করতে পারে সিএইচপি (লুকানো প্রক্রিয়া তৈরি করুন), আপনি কি মনে করেন ঠিক আছে ...

CHP.EXE mybat.bat

কোন কমান্ড উইন্ডো দিয়ে রান। পারফেক্ট! সিএমডিও হিসাবে একই মানুষ দ্বারা তৈরি, কিন্তু এই আরো উপযুক্ত।


17
2017-07-20 21:54



লগ ইন ব্যবহারকারীর প্রসঙ্গে আপনি টাস্ক চালানোর প্রয়োজন হলে পুরোপুরি কাজ করে ("ট্রিগার: ব্যবহারকারী সেশনের সাথে সংযোগ স্থাপন করুন", "ব্যবহারকারীর মতো চালান: ব্যবহারকারীগণ") - Sergei
এই টুল নির্মিত হয় না - Jonny Leeds


CMDOW একটি অসাধারণ টুল যা আপনাকে কমান্ড লাইন থেকে উইন্ডোজগুলিতে অনেকগুলি কাজ করতে দেয়।

সাধারন জিনিসগুলির মধ্যে একটি হল বর্তমান উইন্ডোটি (সাধারণত ব্যাট ফাইলের প্রথম লাইন হিসাবে) লুকান:

cmdow @ /hid

অথবা সঙ্গে একটি নতুন লুকানো প্রক্রিয়া শুরু

cmdow /run /hid mybat.bat 

9
2018-05-17 11:30



এই দুটি এবং রকেটমিন্সের পরামর্শগুলি নতুন সরঞ্জামগুলি ডাউনলোড করার সাথে জড়িত, যার অর্থ বিভিন্ন ডেস্কটপগুলির উপর আরও বেশি উপযুক্ততা। বেকড ইন, উইন্ডো কমান্ড ব্যবহার করে অনেক ভাল। - IanVaughan
প্লাস cmdow কিছু অ্যান্টি-ভাইরাস প্রোগ্রাম দ্বারা "বিপজ্জনক" হিসাবে সনাক্ত করা হয় (এটা না বিপজ্জনক, কিন্তু যদি cmdow ফাইলটি সামঞ্জস্যপূর্ণ হয় তবে সনাক্তকরণ নিজেই কিছু সমস্যা সৃষ্টি করতে পারে ...)। - Otiel
এখনও পপআপ কনসোল আছে, শুধু খুব দ্রুত ফ্ল্যাশ। - Bamboo


সঙ্গে স্ক্রিপ্ট invoking চেষ্টা করুন

start /b <command>

5
2018-05-17 14:54



এটি কাজ করে না, নির্ধারিত কাজ-> স্থিতি অবস্থা "শুরু করা যায়নি", এর সাথে: start / b C: \ file.bat: এবং: start / b "C: \ file.bat": কিন্তু: C: \ file.bat: ঠিক সূক্ষ্ম কাজ করে। - IanVaughan
কারণ start একটি প্রোগ্রাম না, এটি একটি কমান্ড। আপনি নির্দিষ্ট করতে হবে cmd প্রোগ্রাম চালানোর জন্য এবং /c start /b <file> যুক্তি হিসাবে। যাইহোক, এটি এখনও কাজ করতে যাচ্ছে না কারণ এটি এখনও কনসোল উইন্ডো তৈরি করবে cmd এবং পর্দায় একটি কালো উইন্ডো ফ্ল্যাশ। - Synetech
@ সাইনটেকের সাথে এটি নিশ্চিত করতে পারে যে এটি একটি নতুন উইন্ডো তৈরি করবে না, তবে এটিতে শুরু করার জন্য আপনাকে এখনও একটি কনসোল উইন্ডো খুলতে হবে। এটি প্রকৃতপক্ষে একটি সহজ কমান্ড, তবে নির্ধারিত সময়সীমার সাথে অনুরোধ হিসাবে ব্যবহার করা যাবে না। - JonathanDavidArndt


আপনি ব্যাচ ফাইলটিতে একটি শর্টকাট তৈরি করতে পারেন, শর্টকাটটি কমিয়ে আনতে শুরু করুন (শর্টকাটের বৈশিষ্ট্যগুলিতে, 'শর্টকাট' ট্যাব) এবং তারপর শর্টকাটটি শুরু করতে কাজটি সেট করুন।

গুরুত্বপূর্ণ: আপনি রান পাঠ্য ক্ষেত্রটিতে টাইপ করে শর্টকাটটির পথটি নির্দিষ্টভাবে উল্লেখ করতে হবে, '.lnk' এক্সটেনশানটি দিয়ে সম্পূর্ণ করুন; যদি আপনি এটি ব্রাউজ করার চেষ্টা করুন, এটি হবে সহায়কভাবে শর্টকাট পয়েন্ট যা যাই হোক না কেন নিজেই পুনঃনির্দেশিত।


5
2017-08-11 16:49



এটি উইন্ডোজ 10 x64 এ কাজ করে না, এটি একটি পপআপ দেয় "আপনি এই ফাইলটি কীভাবে খুলতে চান?" - Jan


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

আমি বলতে চাই যে আমি @ স্প্ল্যাটনের মন্তব্যের সাথে একমত নই (কিন্তু তার আসল উত্তর নেই) - অন্য রেফারেন্সযুক্ত থ্রেডের রেজোলিউশনটি ক্রেডিট পাওয়ার যোগ্য। সেই উত্তরটিতে একটি পৃথক ব্যবহারকারী (সিস্টেম) হিসাবে স্ক্রিপ্টটি চালানো জড়িত, যা স্ক্রিপ্ট রুট অ্যাক্সেস দেওয়ার সমান সমান। এটা যেমন কাজ জন্য ব্যর্থ হবে ROBOCOPY (জন রেনি দ্বারা রেফারেন্স হিসাবে), যা নেটওয়ার্ক অ্যাক্সেস প্রয়োজন।

আমি কখনও চেষ্টা করিনি CMDOW এর আগে, তবে আমি আরও অনুরূপ রেজোলিউশন অফার করতে চাই, যা [উইন্ডোজগুলিতে নেটিভ-ইনস্টল করা নয়] এখনও বেশিরভাগ সংস্করণগুলিতে অত্যন্ত পোর্টেবল, এবং এটি 32 এবং 64-বিট উভয় সংস্করণে আসে এবং এটি NirCmd

NirCmd হ'ল একটি অত্যন্ত শক্তিশালী হাতিয়ার যা বহুবিধ বিকল্পগুলির মধ্যে রয়েছে, যার মধ্যে সবচেয়ে দরকারী, আমি ব্যক্তিগতভাবে লুকানো কমান্ড উইন্ডোগুলি আনুষ্ঠানিকভাবে নিখরচায় প্রয়োগ করার ক্ষমতা হিসাবে এটি খুঁজে পাচ্ছি:

c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"

থেকে exec বিভাগ NirCmd কমান্ড রেফারেন্স:

exec [show/hide/min/max] [application + command-line]

একটি অ্যাপ্লিকেশন চালায়, এবং বিকল্পভাবে মৃত্যুদন্ড কার্যকর অ্যাপ্লিকেশনের জন্য এক বা একাধিক কমান্ড-লাইন পরামিতি উল্লেখ করুন। প্রদর্শন/লুকান/ মিনিট / সর্বোচ্চ] পরামিতি চলমান অ্যাপ্লিকেশন দৃশ্যমান হবে কিনা তা নির্দিষ্ট করে। যদি 'লুকান' নির্দিষ্ট করা হয়, চলমান অ্যাপ্লিকেশনটি ব্যবহারকারীর কাছে দৃশ্যমান হবে না। যদি 'সর্বোচ্চ' নির্দিষ্ট করা হয়, চলমান অ্যাপ্লিকেশন উইন্ডো সর্বাধিক করা হবে। যদি 'মিনি' নির্দিষ্ট করা থাকে, চলমান অ্যাপ্লিকেশন উইন্ডোটি কমিয়ে আনা হবে।

সম্পাদনা করুন: আমি একটি চালানোর চেষ্টা ছিল ROBOCOPY কাজ এবং এই উত্তরের পদ্ধতিটি চেষ্টা করে এবং নেটওয়ার্ক অ্যাক্সেস সুবিধাগুলি সম্পাদনা করার পরেও এটি কাজ করে নি। আমি স্ক্রিপ্টটি ডাবল-ক্লিক করার চেষ্টা করেছিলাম এবং এটি কাজ করতে পারিনি, তবে কেবল এটি একটি elevated কমান্ড প্রম্পটের অধীনে চালাতে পারে। আমি ব্যাচ ফাইলে একটি শর্টকাট তৈরি করেছি এবং এটি প্রশাসক হিসাবে চালানো হয়েছে এবং এটি ডাবল-ক্লিক করে এটি কার্যকর করতে সক্ষম হয়েছিল, তবে যে পদ্ধতিটি আমি শেষ করেছি সেটি সিস্টেম হিসাবে লুকানো এটি চালানো ছিল (আমি জানি, আমি জানি) - কিন্তু এটা কাজ করে ROBOCOPY, যা মূল্যের জন্য, যতক্ষণ ব্যাচ ফাইলে সঠিক অনুমতি থাকে।

সম্পাদনা 2: কিছু কারণে, এটি সিস্টেম হিসাবে কাজ করবে না (সম্ভবত আগে উল্লেখিত নেটওয়ার্ক অ্যাক্সেস জিনিস) - আমি আসলেই এটি চালানোর পরেই লক্ষ্য করেছি ROBOCOPY / এল ফ্ল্যাগ ছাড়া, যা মূলত কেবল একটি সিমুলেশন এবং [স্পষ্টতঃ] দূরবর্তী সিস্টেমের সাথে সংযোগ করে না, তবে যখন আমি সর্বোচ্চ সুবিধাগুলির সাথে ব্যাচ ফাইলটি চালায় এবং লুকানো বাক্সটি পরীক্ষা করে দেখি, তখনও আমি এটি চালাতে পারি একটি কমান্ড উইন্ডো দেখাচ্ছে ছাড়া পটভূমিতে ব্যবহারকারী লগ ইন, এই যে কেউ জন্য মূল্যবান।


1
2018-05-01 03:38