রিমোট সিস্টেম ব্যাচে পরিষেবা পুনরায় চালু করুন


0

কেবল একটি ব্যাচ নিয়ে সমস্যা হচ্ছে এবং 'আইএফ', 'ইএলএসই' এবং 'গোটো' সম্পর্কে কিছু ব্যাখ্যা দরকার

@echo off

sc \\RemoteServer stop "My_Service"

:query
sc \\RemoteServer query "My_Service"

if %state% == 1 goto start # state =1 indicates service is stopped
else goto query

:start
sc \\RemoteServer start "My_Service"

সুতরাং, আমি যেটি ঘটতে চাই তা হল পরিষেবাটি বন্ধ করা, ব্যাচটি পরিষেবার স্থিতি সম্পর্কে জিজ্ঞাসা করা, এবং রাষ্ট্রের উপর নির্ভর করে পরবর্তী পদক্ষেপে এগিয়ে যাওয়া। এটি প্রয়োজনীয়, কারণ পরিষেবাটি থামাতে বেশ সাদা লাগে। যদি পরিষেবাটি আটকে থাকে 3 STOP_PENDINGতবে এটি sc startব্যর্থ হবে।

কেউ আমার গোটো কেন ব্যর্থ হচ্ছে, বা সম্ভবত আরও ভাল পদ্ধতি সরবরাহ করতে পারে তা ব্যাখ্যা করতে পারে?

টিএনএ

উত্তর:


0

ব্যাচে যদি একটি বিবৃতি ব্যবহার করা হয় তবে এই ফর্ম্যাটটি অনুসরণ করে:

if %state%==1 (
   goto start
) ELSE (
   goto query
)

কোনও কারণ নেই যে সেন্টিমিটার দোভাষী ইএলএসই-কে আইএফ ওথওয়ারিজের সাথে যুক্ত করে।

এছাড়াও, ব্যাচের নিজস্ব লাইনে মন্তব্যগুলি একটি REMবা বিশেষভাবে ব্যাখ্যা করা ::(কোনও ধরণের নাল লাইন লেবেল বা কোনও কিছু যদি আমি সঠিকভাবে স্মরণ করি) দিয়ে with

REM this is a valid comment
:: this too, but be careful using these inside blocks of any kind... so stick to REM

এছাড়াও, বন্ধ বন্ধনী সম্পর্কে সতর্কতা অবলম্বন করুন। কখনও কখনও, যখন এটি ওয়ালি দ্বারা প্রদত্ত উদাহরণ হিসাবে যেমন নিজেই হয়, কমান্ড এটির আগে একটি ত্রুটি ছুঁড়ে মারবে। একটি ভাল অনুশীলন হ'ল সমাপ্তির বন্ধনী বন্ধ করার পরে ঠিক ঠিক করা goto query: goto query)নোটপ্যাড ++ এর মতো সম্পাদক ব্যবহার করা, যার সিনট্যাক্স হাইলাইট রয়েছে, ব্যাচ স্ক্রিপ্টগুলিতে ব্লকগুলির সমস্যা সমাধানে সহায়তা করে। এবং আপনি যা কিছু করুন না কেন কোনও মন্তব্য ডিলিমিটার হিসাবে অ্যাডাস্ট্রোফ ব্যবহার করবেন না। ব্যাচ স্ক্রিপ্ট-এ শুধুমাত্র বৈধ মন্তব্য নেই REMএবং::
JSanchez

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