আপনি FOR
যে উপাদানগুলির সাথে কাজ করতে চান তার উপর পুনরাবৃত্তি করতে আপনাকে ব্যবহার করতে হবে। দেখুন কিভাবে ব্যাচ ফাইলে ওয়াইল্ডকার্ড মিলে ফাইল মাধ্যেমে লুপ করতে বিস্তারিত জানার জন্য।
এই অংশটি সমাধান হয়ে গেলে আপনি নিজের ফাইলের ফাইলের নামটি তৈরি করতে চাইবেন .txt
। কমান্ড লাইন ডকুমেন্টেশন FOR
আমাদের এখানে সহায়তা করতে পারে:
In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
শেষ এন্ট্রি আমরা চাই কি। আমরা এটিকে কেটে দিতে চাই .avi
, তাই আমরা ~n
কেবলমাত্র নামটি পেতে আমাদের পরিবর্তনশীলটি ব্যবহার করি । এখান থেকেই %%~nf.txt
আসে।
আমরা %%f
বর্তমান ফাইলের নাম দিয়ে শুরু করি । তারপরে আমরা এর সাথে এক্সটেনশনটি বন্ধ করে দিয়েছি %%~nf
এবং পেরেছি .txt
... সম্পন্ন:%%~nf.txt
সর্বশেষ সমস্যাটি হ'ল আপনি যখন এটিকে সমস্ত এক লাইনে সমাধান করার চেষ্টা করেন, যেমন:
FOR %%f IN (*.avi) DO ECHO HAPPY > %%~nf.txt
এটি কাজ করবে না, কারণ শেলটি >
তাত্ক্ষণিকভাবে সেই ফাইলটিতে আউটপুট করা শুরু করবে , যা আমরা চাই না। আমরা ECHO
প্রতিটি একক ফাইলের জন্য প্রক্রিয়া করা চাই , তাই আমি কেবল এটি একাধিক লাইনে বিভক্ত করি।
@ECHO OFF
REM Iterate over all *.avi file in the current directory
FOR %%f IN (*.avi) DO (
REM Cut off the extension from %%f, tack on .txt and
REM use it as the filename for our HAPPY output
ECHO HAPPY > %%~nf.txt
)