একটি সেমিডি ফাইলটিতে% এবং %% এর মধ্যে পার্থক্য কী?


88

আমি সম্প্রতি একটি। সিএমডি ফাইলে এর অনুরূপ একটি লাইন অন্তর্ভুক্ত করেছি:

for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"

মূলত আমি কেবল% f ব্যবহার করেছি এবং কমান্ড লাইনে রান করার সময় এটি ঠিকঠাক কাজ করবে, তবে ফাইলটি চালানোর সময় নয়। আমি যখন%% f এ চলেছি তখন এটি ফাইলটিতে কাজ করেছে। শুধু ভাবছি পার্থক্য কি।

উত্তর:


138

(আরও বিশদে বিশদ বিবরণ একটি আর্কাইভ মাইক্রোসফ্ট কেবি নিবন্ধে পাওয়া যাবে ))

তিনটি বিষয় জানতে হবে:

  1. শতাংশ চিহ্ন কমান্ড লাইন প্যারামিটার প্রতিনিধিত্ব করতে ব্যাচ ফাইলের মধ্যে ব্যবহার করা হয়: %1, %2, ...
  2. এগুলির মধ্যে যে কোনও অক্ষরের সাথে দুটি শতাংশ চিহ্ন একটি ভেরিয়েবল হিসাবে ব্যাখ্যা করা হয়:

    echo %myvar%

  3. দুই শতাংশ চিহ্ন ছাড়া মধ্যে কিছু (ক ব্যাচ ফাইল) একটি কমান্ড একটি একক শতাংশ চিহ্ন (না একটি ব্যাচ ফাইল) মত চিকিত্সা করা হয়:%%f

এটা কেন?

উদাহরণস্বরূপ, আমরা যদি আপনার (সরলীকৃত) কমান্ড লাইনটি কার্যকর করি

FOR /f %f in ('dir /b .') DO somecommand %f

ব্যাচ ফাইলে, বিধি 2 ব্যাখ্যা করার চেষ্টা করবে

%f in ('dir /b .') DO somecommand %

একটি পরিবর্তনশীল হিসাবে। এটি রোধ করার জন্য, আপনাকে বিধি 3 প্রয়োগ করতে হবে এবং %দ্বিতীয়টি দিয়ে পালাতে হবে %:

FOR /f %%f in ('dir /b .') DO somecommand %%f

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

6
এছাড়াও, ভেরিয়েবলটি একটি একক অক্ষর তা নিশ্চিত করুন।
jiggunjer

4
আমি যদি এতে কমান্ড জারি করতে চাই যেখানে এতে% আছে যেমন: / f %% i এর জন্য ('গিট লগ -১ - ব্যাখ্যা = ফর্ম্যাট: "%% এইচ" ") জিআইT_COMMIT = %% i সেট করে
ওয়াকান

15

ডস-এ আপনি কমান্ড লাইনে পরিবেশ পরিবর্তনশীলগুলি ব্যবহার করতে পারেন নি, কেবল ব্যাচ ফাইলে, যেখানে তারা %চিহ্নটিকে সীমানা হিসাবে ব্যবহার করেছিল used আপনি যদি %কোনও ব্যাচের ফাইলে একটি আক্ষরিক চিহ্ন চান, যেমন একটি echoবিবৃতিতে, আপনার এটি দ্বিগুণ করা দরকার।

এটি উইন্ডোজ এনটি-তে পৌঁছেছে যা কমান্ড লাইনে পরিবেশের ভেরিয়েবলগুলিকে মঞ্জুরি দেয়, তবে পিছনের সামঞ্জস্যের জন্য আপনাকে এখনও %একটি। সিএমডি ফাইলে আপনার চিহ্নগুলি দ্বিগুণ করতে হবে।

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