একটি ব্যাচ / সেন্টিমিটারে "মন্তব্য-আউট" (মন্তব্য যুক্ত) কীভাবে করবেন?


880

আমার একটি ব্যাচ ফাইল রয়েছে যা বেশ কয়েকটি পাইথন স্ক্রিপ্ট চালায় যা টেবিল পরিবর্তন করে।

  1. আমি ব্যাচ ফাইল থেকে অপসারণের পরিবর্তে ব্যবহারকারীরা যে 1-2 টি পাইথন স্ক্রিপ্টগুলি চালাতে চান না তার মন্তব্য করতে চাই (যাতে পরবর্তী ব্যবহারকারীরা জানেন যে এই স্ক্রিপ্টগুলি বিকল্প হিসাবে উপস্থিত রয়েছে!)

  2. আমি ব্যাচ ফাইলটিতে চালানোর আগে তাদের যে পরিবর্তনশীলগুলি আপডেট করতে হবে তা তাদের নজরে আনার জন্য মন্তব্যগুলি যুক্ত করতে চাই। আমি দেখতে পাচ্ছি যে আমি ব্যবহার করতে পারি REM। তবে দেখে মনে হচ্ছে এটি চালানোর পরে ব্যবহারকারীকে অগ্রগতি সহ আপডেট করার জন্য এটি আরও বেশি।

আরও উপযুক্তভাবে একটি মন্তব্য যুক্ত করার জন্য একটি বাক্য গঠন আছে?


6
আরও দেখুন চমৎকার উত্তর এখানে stackoverflow.com/q/12407800/1011025
ndemou

2
আপনি Rem Sth:: Sth
বিজ্ঞানী_7

উত্তর:


879

remকমান্ড মন্তব্যের জন্য প্রকৃতপক্ষে হয়। স্ক্রিপ্টটি চালানোর পরে এটি সহজাতভাবে কাউকে আপডেট করে না। কিছু স্ক্রিপ্ট লেখক এটির পরিবর্তে সেভাবে এটি ব্যবহার করতে পারেন echo, যদিও ডিফল্টরূপে ব্যাচ ইন্টারপ্রেটার প্রতিটি কমান্ড প্রসেস করার আগে মুদ্রণ করবে । যেহেতু remকমান্ডগুলি কিছু করে না, পার্শ্ব প্রতিক্রিয়া ছাড়াই এগুলি মুদ্রণ করা নিরাপদ। একটি কমান্ড মুদ্রণ এড়ানোর জন্য, এটির সাথে উপসর্গ করুন @, বা, পুরো প্রোগ্রাম জুড়ে সেটিংটি প্রয়োগ করতে, চালান @echo off। (এটি echo offআরও কমান্ড মুদ্রণ এড়ানোর জন্য; ইকো সেটিং কার্যকর হওয়ার আগে সেই আদেশটি @মুদ্রণ করা এড়ানো to)

সুতরাং, আপনার ব্যাচ ফাইলে, আপনি এটি ব্যবহার করতে পারেন:

@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py

405
আপনি "::" দুটি কলোনও ব্যবহার করতে পারেন। ব্যাচ ফাইলটি চালিত হওয়ার পরে সেই লাইনটি প্রদর্শন বা সম্পাদন না করে ব্যাচ ফাইলে মন্তব্য যুক্ত করার দুটি উপায়ের একটি। আরইএম এর বিপরীতে এই লাইনটি ECHO অফ ব্যাচ ফাইলে থাকলে নির্বিশেষে প্রদর্শিত হবে না।
ব্রেন্ট 8১

12
@ ব্রেন্ট 81 আমি মনে করি এটির সঠিক উত্তর হওয়া উচিত। আরইএম কমান্ড হাইলাইট করে সিনট্যাক্স ব্যবহার করার সময় পাঠ্যটিকে "মন্তব্য করা" হিসাবে হাইলাইট করে না।
অটোম্যাটিকো

17
ডাবল-কোলন একটি "অবৈধ লেবেল"; এখানে এটির একটি নিবন্ধ রয়েছে যা এটি ব্যাখ্যা করেছে এবং এটির পারফরম্যান্স আরইএম এর চেয়ে ভাল (বিশেষত ফ্লপি ডিস্কগুলিতে) হতে পারে, এবং এটি ইনডেন্টড
মাইকেল পলুকোনিস

4
মজাদার. আমি যদিও আরইএম ছিল 'সম্পূর্ণ লাইন মন্তব্য' এবং ডাবল কোলন ছিল 'ইনলাইন মন্তব্য', যেমনREM This whole line is a comment @echo off :: This comment is inline
রিচার্ড স্মিথ

@ আলহাদিস, পার্লের কনফিগার স্ক্রিপ্টটি উইন্ডোজ ব্যাচে নয়, বোর্ন শেল-এ লেখা আছে, তবে এটি এখানে কীভাবে প্রাসঙ্গিক? তদুপরি, কোলন কমান্ডটি বৈধ বোর্ন সিনট্যাক্স হ'ল "বোনাস পার্শ্ব প্রতিক্রিয়া" নয়; এটি কেন বোর্ন লিপিটিতে ব্যবহৃত হয়েছে । এটি #মন্তব্যগুলির পক্ষে হয়েছে কারণ #সম্ভবত স্পষ্টতই, সমস্ত শেলগুলিতে একটি বৈধ মন্তব্য ডিজাইনার নাও হতে পারে কনফিগার সমর্থন করার উদ্দেশ্যে; লাইন 3 দেখুন
রব কেনেডি

954

ব্যবহার করুন ::বাREM

::   commenttttttttttt
REM  commenttttttttttt

কিন্তু (যেমন লোকেরা উল্লেখ করেছেন):

  • আপনি যদি ইনলাইন ব্যবহার করেন তবে আপনার &চরিত্র যুক্ত করতে হবে :
    your commands here & :: commenttttttttttt
  • নেস্টেড লজিকের ভিতরে ( IF/ELSE, FORলুপস, ইত্যাদি ...) ব্যবহার করুন REMকারণ ::একটি ত্রুটি দেয়।
  • :: মধ্যে ব্যর্থ হতে পারে setlocal ENABLEDELAYEDEXPANSION

79
ডাবল কোলন :: সবচেয়ে পরিষ্কার .ব্যাট মন্তব্য আছে। এবং এটি একটি লাইনের শুরুতে বা মাঝখানে ব্যবহার করা যেতে পারে!
এটিসিয়েম

10
এইভাবে ইনলাইন করা হয়ে গেলে আমার পক্ষে কাজ করেনি। cd "C:\Folder" ::this throws a syntax error
শন রোয়ান ২

3
git add :: blah this is not a comment"মারাত্মক: প্যাথস্পেক 'ব্লাহ' কোনও ফাইলের সাথে মেলে না"
বব স্টেইন

19
উদাহরণটি যেমন &বোঝায় তেমন একই লাইনে একটি মন্তব্যের জন্য আপনাকে কোড এবং মন্তব্যের মধ্যে যুক্ত করতে হবে ::। উদাহরণস্বরূপ, খুলুন সেমিডি প্রম্পট এবং রান করুন dir ::blahযা লিখিত সামগ্রীগুলির সাথে তালিকার .তুলনা করে না এবং dir & ::blahযা তুলনা করে
Rado

19
সতর্কতা, ব্যবহার করে ::স্ক্রিপ্টগুলি বাগ করবে setlocal ENABLEDELAYEDEXPANSIONএবংfor
আজেভেদো

50

না, সরল পুরাতন ব্যাচের ফাইলগুলি REMমন্তব্য হিসাবে ব্যবহার করে । ECHOহ'ল কমান্ড যা স্ক্রিনে কিছু ছাপায়।

আপনি যে ফাইলটি ব্যবহার করতে পারেন তার বিভাগগুলি "মন্তব্য করতে" GOTO। এই সমস্ত আদেশ / কৌশলগুলির একটি উদাহরণ:

REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it!  Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py

আমি কি বলতে পারি? ব্যাচের ফাইলগুলি বহু কাল ধরে চলে যাওয়ার একটি প্রতিচ্ছবি, এগুলি আটকানো এবং কুরুচিপূর্ণ।

আপনি এই ওয়েবসাইটে আরও পড়তে পারেন ।

সম্পাদনা করুন: উদাহরণটি কিছুটা সংশোধন করে এতে আপনি যে উপাদানগুলি স্পষ্টতই সন্ধান করছেন সেগুলি ধারণ করে।


31

কম্পিউটারগুলি খুব দ্রুত ছিল না এমন দিনগুলিতে আরএম এর পরিবর্তে ব্যবহার করা হত। REM'ed লাইনটি পড়া হয় এবং তারপরে অজানা হয়। :: 'এড লাইনটি সমস্ত উপেক্ষা করা হয়। এটি "পুরানো দিনগুলিতে" আপনার কোডটি গতিময় করতে পারে। আর ই এম এর পরে আপনার আরও দরকার একটি স্থানের পরে :: আপনার দরকার নেই।

এবং প্রথম মন্তব্যে যেমন বলা হয়েছে: আপনি যে কোনও লাইনে প্রয়োজনীয়তা বোধ করছেন তে তথ্য যুক্ত করতে পারেন

SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS

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

SOME CODE

GOTO LABEL  ::REM OUT THIS LINE TO EXECUTE THE CODE BETWEEN THIS GOTO AND :LABEL

SOME CODE TO SKIP
.
LAST LINE OF CODE TO SKIP

:LABEL
CODE TO EXECUTE

1
ডাবল-কোলন রেখাটি কীভাবে না পড়ে উপেক্ষা করা যায়? ডাবল কোলন লাইন হিসাবে স্বীকৃতি দেওয়ার আগে দোভাষী প্রথমে লাইনটি পড়বেন না?
রব কেনেডি

2
@ রব কেনেডি উত্তরটি পড়তে পড়তে এটি :: :: এর পরে আর কিছু পড়বে না, যেখানে আরইএম-র পরে সমস্ত কিছু পড়ছে।
জেমস জেনকিন্স

5
কমান্ড ইন্টারপ্রেটার যদি @ জেমস পড়া বন্ধ করে দেয় তবে ফাইলটি আর কখনও চালায় না। মন্তব্যটি কোথায় শেষ হয় এবং ফাইলটির পরবর্তী লাইনটি কোথায় শুরু হয় তা আবিষ্কার করার জন্য এটি অবশ্যই পড়া চালিয়ে যাওয়া দরকার। এটি সঙ্গে ::এবং remসমানভাবে করতে হবে।
রব কেনেডি

2
@ রব কেনেডি, আমি এটিও ভেবেছিলাম যে এটি বোঝানো হয়েছে যে এটি কেবলমাত্র কমান্ডটি যে লাইনে ছিল তাতে প্রয়োগ হয়েছিল।
জেমস জেনকিন্স

7
@ রব কেনেডি এটি পড়ে তবে এটি যা পড়ে তা পার্স (বা প্রক্রিয়া) করে না , এটি কেবল পরের আগ পর্যন্ত এড়িয়ে যায় \nএবং তারপরে আবার বিশ্লেষণ শুরু করে [উদ্ধৃতি আবশ্যক]
এক্সডাইজু

25

মাল্টি লাইন মন্তব্য

যদি আপনি প্রচুর পরিমাণে লাইন মন্তব্য করতে চান তবে আপনি প্রতিটি লাইনে মন্তব্য না করে মাল্টি লাইন মন্তব্য করতে পারলে ভাল হয়।

মন্তব্য ব্লকগুলিতে রব ভ্যান ডার ওয়াডের এই পোস্টটি দেখুন :

ব্যাচ ভাষায় কমেন্ট ব্লক নেই, যদিও প্রভাবটি সম্পাদনের বিভিন্ন উপায় রয়েছে।

GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1

GOTOব্লক মন্তব্য করার জন্য আপনি লেবেল এবং: লেবেল ব্যবহার করতে পারেন ।

বা, যদি মন্তব্য ব্লকটি ব্যাচের ফাইলের শেষে উপস্থিত হয়, আপনি EXITকোডের শেষে এবং তারপরে আপনার বোঝার জন্য যে কোনও সংখ্যক মন্তব্য লিখতে পারেন।

@ECHO OFF
REM Do something
  •
  •
REM End of code; use GOTO:EOF instead of EXIT for Windows NT and later
EXIT

Start of comment block at end of batch file
This line is comment.
And so is this line.
And this one...

এই প্রায়ই সংকর ব্যাচ & VBS / জেএস স্ক্রিপ্ট ব্যবহার করা হয় যদিও তারা হয় তবে ব্যবহার ifপরিবর্তে goto stackoverflow.com/q/9074476/995714 ss64.com/vb/syntax-hybrid.html stackoverflow.com/a/34512715/995714
phuclv

13

কমান্ড সহ একই লাইনে মন্তব্য করা: ব্যবহার করুন & :: comment

color C          & :: set red font color
echo IMPORTANT INFORMATION
color            & :: reset the color to default

ব্যাখ্যা:

&দুটি কমান্ড পৃথক করে , সুতরাং এই ক্ষেত্রে color Cপ্রথম কমান্ডটি :: set red font colorহয় এবং দ্বিতীয়টি হয়।


গুরুত্বপূর্ণ:

মন্তব্য সহ এই বিবৃতি স্বজ্ঞাতভাবে সঠিক দেখায়:

goto error1         :: handling the error

তবে এটি মন্তব্যের বৈধ ব্যবহার নয় । এটি কেবলমাত্র কাজ gotoকরে কারণ প্রথমটিতে থাকা সমস্ত যুক্তি উপেক্ষা করে। প্রমাণটি সহজ, gotoএটিও ব্যর্থ হবে না:

goto error1 handling the error

কিন্তু অনুরূপ প্রচেষ্টা

color 17            :: grey on blue

কমান্ড কারণে 4 আর্গুমেন্ট অজানা নির্বাহ ব্যর্থ colorকমান্ড প্রয়োগ করুন: ::, grey, on,blue

এটি কেবল এই হিসাবে কাজ করবে:

color 17     &      :: grey on blue

সুতরাং অ্যাম্পারস্যান্ড অনিবার্য।


অন্যান্য উত্তর থেকে, মনে হচ্ছে যে অ্যাম্পারস্যান্ডের দরকার নেই?
রোজ

3
@ স্নাপটাস্টিক - অন্যান্য উত্তরগুলি এই সময়ে আসলে ভুল, আমার সাম্প্রতিক সম্পাদনা দেখুন।
মিরোক্লাভ

এটি সঠিক উপায় বলে মনে হচ্ছে; এমনকি এটি আমার আইডিইতে মন্তব্য হিসাবে হাইলাইট হয়।
বাবুরাও

5

আপনি ::বা কিছু ব্যবহার করে মন্তব্য করতে পারেন REM:

your commands here
:: commenttttttttttt

অথবা

your commands here
REM  commenttttttttttt

 

কমান্ড হিসাবে একই লাইনে এটি করতে, আপনাকে অবশ্যই একটি অ্যাম্পারস্যান্ড যুক্ত করতে হবে:

your commands here      & ::  commenttttttttttt

অথবা

your commands here      & REM  commenttttttttttt

 

বিঃদ্রঃ:

  • ব্যবহার :: নেস্টেড যুক্তিবিজ্ঞান মধ্যে ( IF-ELSE, FORলুপ, ইত্যাদি ...) একটি ত্রুটি হতে হবে। এই ক্ষেত্রে, REMপরিবর্তে ব্যবহার করুন।

এটি টি.টোডুয়ার উত্তরের উপর ভিত্তি করে। আমি অনুভব করেছি যে তাদের উত্তরটি ভাল ছিল তবে কিছু গুরুত্বপূর্ণ বিবরণ রেখেছিল, তবে তারা আমার সম্পাদনাটি ফিরিয়ে দিয়েছে, তাই আমি আমার সংশোধনটিকে তার নিজের উত্তরে পরিণত করছি।
পিকমন্দর 2

Pikamander2, আপনার সংস্করণ (এছাড়াও আউট ব্যবহারকারী দ্বারা নির্দিষ্ট @Rado উত্তর মিশে গেছে সময় এবং যে জন্য ধন্যবাদ, শুধু আমি উত্তরের জন্য অন্য স্টাইলিং পছন্দের যে এবং বিভিন্ন স্টাইলিং ব্যবহৃত।
T.Todua

1

এটি একটি পুরানো বিষয় এবং আমি এই আকর্ষণীয় বিষয়টির জ্ঞানকে প্রসারিত করতে এখানে আমার বোঝাপড়া যুক্ত করতে চাই।

আরইএম এবং :: এর মধ্যে মূল পার্থক্য হ'ল:

আরইএম নিজেই একটি কমান্ড, যখন :: এটি নয়।

আমরা :: একটি টোকেন হিসাবে চিকিত্সা করতে পারি যে সিএমডি পার্সারের সাথে সাথে একটি লাইনের প্রথম অ-ফাঁকা স্থান হ'ল এটি :: টোকেন, এটি কেবল পুরো লাইনটি এড়িয়ে যাবে এবং পরের লাইনটি পড়বে line এই কারণেই রেমটির জন্য মন্তব্য হিসাবে কাজ করতে সক্ষম হতে কমপক্ষে একটি ফাঁকা স্থান অনুসরণ করা উচিত, যখন :: এর পিছনে কোনও ফাঁকা জায়গার প্রয়োজন হয় না।

এই আরইএম একটি কমান্ড নিজেই নিম্নলিখিত ফোর থেকে ভালভাবে বোঝা যাবে বাক্য গঠন

নীচের জন্য সিনট্যাক্সের জন্য বেসিক

FOR %v in (set) DO <Command> [command param] 

এখানে <Command>কোনো বৈধ কমান্ড সুতরাং আমরা নিম্নলিখিত বৈধ কমান্ড লাইন লিখতে পারেন হতে পারে যেমন remএকটি কমান্ড

FOR %i in (1,2,3) DO rem echo %i

তবে, আমরা নিম্নলিখিত পংক্তিটি লিখতে পারি না কারণ ::এটি কোনও আদেশ নয়

FOR %i in (1,2,3) DO :: echo %i

3
প্রযুক্তিগতভাবে, ::এটি একটি (অবৈধ) লেবেল (যা এটির আচরণের ব্যাখ্যা দেয়) এবং তাই এটি ব্যবহার করা উচিত নয় (যদিও এটি এখনও বেশ সাধারণ)
স্টিফান

1

আপনি এই সিনট্যাক্স সহ ব্যাচ ফাইলের শেষে মন্তব্যগুলি যুক্ত করতে পারেন:

@echo off
:: Start of code
...
:: End of code

(I am a comment
So I am!
This can be only at the end of batch files

কেবল নিশ্চিত করুন যে আপনি কখনই বন্ধের বন্ধনী ব্যবহার করবেন না।

বৈশিষ্ট্য: লিও গুতেরেজ রামিরেজ https://www.robvenderwoude.com/comments.php এ

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