এই ব্যাচের স্ক্রিপ্ট এটি করবে।
@echo off
set target=%~1
if "%target%"=="" set target=%cd%
setlocal EnableDelayedExpansion
set LF=^
rem Previous two lines deliberately left blank for LF to work.
for /f "tokens=*" %%i in ('dir /b /s /a:-d "%target%"') do (
set ext=%%~xi
if "!ext!"=="" set ext=FileWithNoExtension
echo !extlist! | find "!ext!:" > nul
if not !ERRORLEVEL! == 0 set extlist=!extlist!!ext!:
)
echo %extlist::=!LF!%
endlocal
এটিকে যে কোনও .bat
ফাইল হিসাবে সংরক্ষণ করুন, এবং batchfile
বর্তমান ডিরেক্টরি তালিকাভুক্ত করতে কমান্ডটি (আপনার নাম হিসাবে চিহ্নিত করুন) এর সাথে চালনা করুন বা এর সাথে কোনও পথ নির্দিষ্ট করুন batchfile "path"
। এটি সমস্ত উপ-ডিরেক্টরি অনুসন্ধান করবে।
আপনি যদি কোনও ফাইলে রফতানি করতে চান তবে batchfile >filename.txt
(বা batchfile "path" >filename.txt
) ব্যবহার করুন ।
ব্যাখ্যা
for /f...
লাইনের আগে সবকিছু ঠিকঠাক করে দেয়: এটি অনুসন্ধানের জন্য লক্ষ্য ডিরেক্টরিটি পায়, বিলম্বিত প্রসারণ সক্ষম করে যা আমাকে লুপে পরিবর্তনশীল করতে দেয় এবং একটি নতুন লাইন ( LF
) সংজ্ঞায়িত করে যা আমি নীটার আউটপুট ব্যবহার করতে পারি। ওহ, এবং এর %~1
অর্থ "প্রথম যুক্তি পান, উদ্ধৃতিগুলি সরিয়ে ফেলুন" যা দ্বিগুণ-উক্তিগুলি প্রতিরোধ করে - দেখুন for /?
।
লুপটি সেই dir /b /s /a:-d "%target%"
কমান্ডটি ব্যবহার করে , টার্গেটের অধীনে সমস্ত সাব ডিরেক্টরিতে সমস্ত ফাইলের একটি তালিকা দখল করে।
%%~xi
dir
কমান্ডটি ফিরে আসে এমন পুরো পথ থেকে এক্সটেনশনটি বের করে ।
একটি ফাঁকা এক্সটেনশন "ফাইলউইথনো এক্সটেনশন" দিয়ে প্রতিস্থাপন করা হয়েছে, যাতে আপনি জানেন যে এই জাতীয় একটি ফাইল রয়েছে - আমি যদি এর পরিবর্তে একটি খালি লাইন যুক্ত করি তবে এটি একেবারে সুস্পষ্ট নয়।
find
স্বতন্ত্রতা নিশ্চিত করার জন্য যদি কোনও আদেশের মাধ্যমে পাঠানো হয় তবে পুরো বর্তমান তালিকা । Find কমান্ডের টেক্সট আউটপুট পাঠানো হয় nul
মূলত একটি কালো গহ্বর - আমরা এটা চাই না। যেহেতু আমরা সর্বদা :
তালিকার শেষে একটি সংযোজন করি, তাই আমাদেরও নিশ্চিত হওয়া উচিত যে অনুসন্ধান কোয়েরিটি শেষ হয়েছে :
যাতে এটি আংশিক ফলাফলের সাথে মেলে না - মন্তব্য দেখুন।
% ERRORLEVEL% find
কমান্ড দ্বারা সেট করা হয়েছে , 0 এর মান একটি মিল আছে তা নির্দেশ করে। সুতরাং এটি যদি 0 না হয় তবে বর্তমান এক্সটেনশনটি এখনও পর্যন্ত তালিকায় নেই এবং যুক্ত হওয়া উচিত।
প্রতিধ্বনির লাইনটি মূলত আউটপুটগুলিতে থাকে এবং আমি আমার স্থানধারককে ( :
)) এটিকে সুন্দর দেখাতে নতুন লাইনের সাথে প্রতিস্থাপন করি ।