উইন্ডোজ ব্যাচের ফাইলটিতে কীভাবে লুপ করবেন?


উত্তর:


128
FOR %%A IN (list) DO command parameters

তালিকা হ'ল স্পেস, কমা বা সেমিকোলন দ্বারা বিচ্ছিন্ন যে কোনও উপাদানগুলির একটি তালিকা।

কমান্ডটি কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, ব্যাচ ফাইল বা এমনকি - ওএস / ২ এবং এনটি-তে হতে পারে - আদেশের তালিকা

পরামিতিগুলিতে কমান্ডের জন্য কমান্ড লাইন প্যারামিটার থাকে। এই উদাহরণস্বরূপ, নির্দিষ্ট প্রতিটি পরামিতি ব্যবহার করে তালিকার প্রতিটি উপাদানগুলির জন্য কমান্ড একবার কার্যকর করা হবে।

একটি বিশেষ ধরণের প্যারামিটার (বা এমনকি কমান্ড) হ'ল %% A, যা প্রতিটি উপাদান দ্বারা পরপর তালিকা থেকে প্রতিস্থাপিত হবে।

ফর লুপ থেকে


3
আমি কি তালিকাতে (1 থেকে 100) পরিসীমা দিতে পারি?
প্রদীপ

36
FOR /L %x IN (1,1,100) DO ...
জোয়

[ parameters ]আপনি যদি আপনার forলুপে একাধিক লাইন অন্তর্ভুক্ত করতে চান তবে প্যারেনগুলি রাখুন
ফ্রাঙ্ক ব্রাইস

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

223

যদি আপনি x বার কিছু করতে চান তবে আপনি এটি করতে পারেন:

উদাহরণ (x = 200):

FOR /L %%A IN (1,1,200) DO (
  ECHO %%A
)

1,1,200 মাধ্যম:

  • শুরু = 1
  • প্রতি ধাপে বৃদ্ধি = 1
  • শেষ = 200

17
যোগ করার জন্য ধন্যবাদ. আপনি যদি আপনার উদাহরণের প্রারম্ভিক মানটিকে ইনক্রিমেন্টের চেয়ে আলাদা কিছুতে পরিবর্তন করেন তবে আরও স্পষ্ট হতে পারে।
ওয়ারেন স্টিভেনস

7
শেষ মানটি অন্তর্ভুক্ত।
রোল্যান্ড পিহলাকাস

54

টাইপ করুন:

for /?

এবং আপনি সাহায্যের পাঠ্যের বেশ কয়েকটি পৃষ্ঠাগুলি পাবেন।


8
আমি এটি গ্রহণযোগ্য উত্তরের চেয়ে বেশি পছন্দ করি কারণ এটি ডস / উইন্ডোজের বিভিন্ন সংস্করণ পরিচালনা করে। "জন্য" বেশ কয়েক বছর ধরে বেশ উল্লেখযোগ্যভাবে উন্নত করা হয়েছে, এবং প্রশ্নটি বলে না যে কোন সংস্করণ (গুলি) লক্ষ্যবস্তু করা হচ্ছে বা কোন দৃশ্যের চেষ্টা করা হচ্ছে।
ম্যাটিয়াস অ্যান্ডারসন

34

শর্তসাপেক্ষে বেশ কয়েকবার একটি কমান্ড সঞ্চালন করুন।

  • সিনট্যাক্স-জন্য-ফাইল

    FOR %%parameter IN (set) DO command 
    
  • সিনট্যাক্স-ফর-ফাইল-এর মূলের পথে

    FOR /R [[drive:]path] %%parameter IN (set) DO command 
    
  • সিনট্যাক্স-জন্য-ফোল্ডার

    FOR /D %%parameter IN (folder_set) DO command 
    
  • সিনট্যাক্স-ফর-সংখ্যাগুলির তালিকা

    FOR /L %%parameter IN (start,step,end) DO command 
    
  • সিনট্যাক্স-ফর-ফাইল সামগ্রী

    FOR /F ["options"] %%parameter IN (filenameset) DO command 
    

    অথবা

    FOR /F ["options"] %%parameter IN ("Text string to process") DO command
    
  • সিনট্যাক্স-ফর-কমান্ড ফলাফল

    FOR /F ["options"] %%parameter IN ('command to process') DO command
    

এটা

  • ডেটা সেট করুন
  • %%Gসেই তথ্যের কিছু অংশের জন্য একটি পরামিতি তৈরি করুন
  • একটি কমান্ড সম্পাদন করুন (কমান্ডের অংশ হিসাবে প্যারামিটারটি বিকল্পভাবে ব্যবহার করা)।
  • -> তথ্য প্রতিটি আইটেম জন্য পুনরাবৃত্তি

আপনি যদি ব্যাচ প্রোগ্রামের পরিবর্তে কমান্ড লাইনে ফর কমান্ড ব্যবহার করেন, তবে কেবলমাত্র এক শতাংশ চিহ্ন ব্যবহার করুন: %Gপরিবর্তে %%G

পরামিতিগুলির জন্য

  • প্রথম প্যারামিটারটি একটি একক অক্ষর ব্যবহার করে সংজ্ঞায়িত করতে হয়, উদাহরণস্বরূপ জি অক্ষর।

  • FOR %%G IN ...

    একটি ফর লুপের প্রতিটি পুনরাবৃত্তিতে, IN ( ....)ধারাটি মূল্যায়ন করা হয় এবং %%Gআলাদা মানতে সেট করা হয়

    যদি এই ধারাটি যদি একক মানের হয়ে থাকে তবে%% G সেই মানের সমান সেট হয়ে যায় এবং আদেশটি সম্পাদিত হয়।

    যদি ক্লজটি একাধিক মানের ফলাফল করে তবে অতিরিক্ত পরামিতিগুলি প্রতিটি ধারণ করার জন্য স্পষ্টভাবে সংজ্ঞায়িত করা হয়। এগুলি স্বয়ংক্রিয়ভাবে বর্ণানুক্রমিকভাবে বরাদ্দ করা হয়েছে %%H %%I %%J... (অন্তর্নিহিত প্যারামিটার সংজ্ঞা)

    যদি প্যারামিটারটি কোনও ফাইলকে বোঝায়, তবে বর্ধিত পরিবর্তনশীল রেফারেন্সটি ফাইলের নাম / পথ / তারিখ / আকার নিষ্কাশন করতে ব্যবহার করা যেতে পারে।

    আপনি অবশ্যই বর্ণমালার যে কোনও বর্ণ বেছে নিতে পারেন %%G। তবে এটি একটি ভাল পছন্দ কারণ এটি কোনও পথের বিন্যাসের অক্ষরের সাথে দ্বন্দ্ব করে না (ক, ডি, ফ, এন, পি, এস, টি, এক্স) এবং অন্তর্নিহিত প্যারামিটার হিসাবে ব্যবহারের জন্য অ-বিরোধী অক্ষরের দীর্ঘতম রান সরবরাহ করে ।


1
আগের সেট ভেরিয়েবলের ভিতরে যাওয়ার জন্য আমি কীভাবে লুপটি ব্যবহার করব? আমি / এফ "টোকেন = 2 ডিলিমস =," %% আই ইন (% a%) করতে (… ..) চেষ্টা করেছি কিন্তু এটি কাজ করে না। "(এই সময়ে অপ্রত্যাশিত ছিল" বলে ব্যর্থ হয়েছিল
শিবানী

হাই! হয় %a%একজন নিয়মিত ফাইলের নাম দেবার? আপনাকে এই ফর্ম্যাটটি সাহায্য করা কঠিন। কীভাবে জিজ্ঞাসা করবেন পড়ার পরে নির্দ্বিধায় একটি নতুন প্রশ্ন জিজ্ঞাসা করুন
জে ছোমেল

2
@ জম্পিং_মোনকি, ফর কমান্ড প্যারামিটার ভেরিয়েবলগুলি তৈরি করে যা কোনও সংখ্যার (যেমন %% G) পরিবর্তে একটি অক্ষর দ্বারা চিহ্নিত হয়। প্যারামিটার সম্প্রসারণের পথের বিন্যাসটিও এগুলি প্রয়োগ করা যেতে পারে। অক্ষরের দুটি সেটগুলির মধ্যে বিভ্রান্তি এড়াতে, প্যারামিটারগুলির জন্য অক্ষরগুলি (ক, ডি, ফ, এন, পি, এস, টি, এক্স, জেড) ব্যবহার করা এড়িয়ে চলুন বা কেবলমাত্র UPPER কেস হিসাবে একটি পরামিতি বর্ণ নির্বাচন করুন।
জে ছোমেল

হাই @ জে.চোমেল, So for example in a reference like %%~fG the %%G is the FOR parameter, and the ~f is the Parameter Expansion.এটি পেয়েছেন (এখানে) [ ss64.com/nt/syntax-args.html ), আপনাকে ধন্যবাদ। চিয়ারস সাথী।
jumping_monkey

15

FOR যথাযথ ব্যবহারের উদাহরণ সহ ফোর লুপ সম্পর্কে আপনার যে কোনও তথ্য জানা দরকার will


13

এই কোড ব্যবহার করে দেখুন:

@echo off
color 02
set num1=0
set num2=1 
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause 
exit
:open
echo %num1%
goto loop

num1বর্ধিত হওয়ার সংখ্যা এবং এটিতে num2যুক্ত হওয়া মান num1এবং টার্মিনেটর এমন মান যেখানে মানটি num1শেষ হবে। আপনি এই বিবৃতিতে টার্মিনেটরের জন্য পৃথক মান নির্দেশ করতে পারেন ( if %num1%==%terminator% goto close)। এটি বুলিয়ান এক্সপ্রেশন গোটো ক্লোজ হয় প্রক্রিয়াটি যদি বুলিয়ান সত্য হয় এবং বুলিয়ান মিথ্যা হয় তবে প্রক্রিয়াটি খোলা থাকে।


এটি বোঝা সহজ। অন্যান্য উত্তরগুলি আদেশগুলি এবং পতাকাগুলি কী করে সে সম্পর্কে কোনও ব্যাখ্যা দেয় না। জাভাস্ক্রিপ্টে একমাত্র ধরণের লোকের জন্যই, ব্যাচের ফাইলগুলি মোটেই স্বজ্ঞাত নয়।
1934286

5
@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit

5

FOR /?সহায়তা ডক থেকে :

% ভেরিয়েবল IN (সেট) ডিও কমান্ড [কমান্ড-পরামিতি]

% ভেরিয়েবল একটি একক অক্ষর প্রতিস্থাপনযোগ্য পরামিতি নির্দিষ্ট করে।
(সেট) এক বা একাধিক ফাইলের সেট নির্দিষ্ট করে। ওয়াইল্ডকার্ড ব্যবহার করা যেতে পারে। কমান্ড প্রতিটি ফাইলের জন্য কমান্ড নির্দিষ্ট করে।
কমান্ড-পরামিতি
নির্দিষ্ট কমান্ডের জন্য প্যারামিটার বা স্যুইচ নির্দিষ্ট করে।

একটি ব্যাচ প্রোগ্রামে ফর কমান্ড ব্যবহার করতে
,% ভেরিয়েবলের পরিবর্তে %% ভেরিয়েবল নির্দিষ্ট করুন । পরিবর্তনশীল নামগুলি কেস সংবেদনশীল, সুতরাং% i
% I থেকে পৃথক ।

কমান্ড এক্সটেনশানগুলি সক্ষম থাকলে,
ফর কমান্ডের নিম্নলিখিত অতিরিক্ত ফর্মগুলি সমর্থিত:

ফর / ডি% ভেরিয়েবল IN (সেট) ডিও কমান্ড [কমান্ড-প্যারামিটার]

If set contains wildcards, then specifies to match against directory  
names instead of file names.                                          

ফর / আর [[ড্রাইভ:] পাথ]% ভেরিয়েবল IN (সেট) ডিও কমান্ড [কমান্ড-পরামিতি]

Walks the directory tree rooted at [drive:]path, executing the FOR    
statement in each directory of the tree.  If no directory             
specification is specified after /R then the current directory is     
assumed.  If set is just a single period (.) character then it        
will just enumerate the directory tree.                               

ফর / এল% ভেরিয়েবল IN (শুরু, পদক্ষেপ, শেষ) ডিও কমান্ড [কমান্ড-পরামিতি]

The set is a sequence of numbers from start to end, by step amount.   
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would   
generate the sequence (5 4 3 2 1)                                     
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.