উত্তর:
dir /x
সামঞ্জস্যতার কারণে, উইন্ডোজ তৈরি প্রতিটি দীর্ঘ ফাইলের নামের জন্য একটি 8.3 নাম উত্পন্ন করে এবং ওয়াইল্ডকার্ড মেলানো কোড ( FindFirstFile()
) মূল এবং সংক্ষিপ্ত দুটি নামই পরীক্ষা করে। dir /x
প্রতিটি ফাইলে কী সংক্ষিপ্ত নাম নির্ধারিত হয়েছে তা দেখতে ব্যবহার করুন।
8.3 নামের "এক্সটেনশান" অংশটি সর্বদা সর্বশেষ 3 টি অক্ষরে শেষ এক্সটেনশানটি কাটা করে তৈরি করা হয়: .aspx
থেকে.ASP
এনটিএফএস ফাইল সিস্টেম ব্যবহার করা হলে, 8.3 নাম সৃষ্টি অক্ষম সিস্টেম-ব্যাপী হতে পারে ব্যবহার করছে:
fsutil behavior set disable8dot3
তবে এটি বিদ্যমান নামগুলিকে প্রভাবিত করবে না । আপনাকে প্রতিটি ফাইলের পুনরায় নামকরণ করতে হবে এবং তারপরে এটির নতুন নামটি পুনরায় নামকরণ করতে হবে।
আরও দেখুন: উইন্ডোজ কমান্ড প্রম্পটে ডিরেক্টরি অনুসন্ধান ভুল আউটপুট দেখায়!
dir
আউটপুটটি ফিল্টার করুন dir /b/s *.asp | findstr /ile .asp
- এই লাইনগুলি শেষ হয় না .asp
।
অবশ্যই এটি কোন কম্যান্ড ইন্টারপ্রেটারের DIR
কমান্ড ব্যবহার করে তা অনুসারে পরিবর্তিত হয় । DIR
নিন কমান্ড কমান্ড , উদাহরণস্বরূপ, শুধুমাত্র দীর্ঘ নাম ডিফল্টরূপে সাথে মিলে যায় এবং তাই এই আচরণ প্রদর্শন করে না। ( সিএমডি-র কমান্ডের সাথে সামঞ্জস্যের জন্য সংক্ষিপ্ত পাশাপাশি দীর্ঘ নামের মিলও চালু করা যেতে পারেDIR
)) সুতরাং এগুলি সমাধান করার উপায় রয়েছে FSUTIL
এবং প্রশাসকের সুযোগ সুবিধার দরকার নেই।
আকর্ষণীয় - এটি একটি বাগ বলে মনে হচ্ছে ...
বিবেচনা করে, আমি এটির মতো সন্ধানের মাধ্যমে এটি পাইপ করব:
dir /s *.asp | find /i /v ".aspx "
.aspx
নামগুলির মাঝখানে কোথাও থাকা ফাইলগুলিও বাদ দেওয়া হবে , যেমন file.aspx.name.asp
আসলে অন্তর্ভুক্ত করা উচিত ...
আপনার যদি পাওয়ারশেল থাকে তবে আপনি এটি ব্যবহার করতে পারেন:
dir *.asp -r | remove-item
আপনার যদি পাওয়ারশেল না থাকে তবে কেন নয়?
যেমন ব্যবহারকারী গ্রাভিটি ইতিমধ্যে তাদের উত্তরে বলেছে , এটি কারণ হ'ল অভ্যন্তরীণ কমান্ড দ্বারা ব্যবহৃত ওয়াইল্ডকার্ডগুলিcmd
এবং বেশ কয়েকটি বহিরাগতগুলি 8.3 ফাইলের নামের সাথে মেলে যা ডিফল্টরূপে সক্ষম করা হয়েছে।
এটিকে ঘিরে কাজ করার জন্য, বেশ কয়েকটি উপায় রয়েছে যার মধ্যে কয়েকটি আমি আপনাকে দেখাতে চাই:
আপনি findstr
যে ফাইলগুলি দিয়েছিলেন তার নামগুলি ফিল্টার করতে ব্যবহার করতে পারেন dir
:
dir /S /B /A:-D "*.asp" | findstr /IEC:".asp"
এটি এমনকি .asp
কোথাও তাদের নামের (যেমন file.asp.aspx
) ফাইলগুলির সাথেও মেলে না বা এটি .aspx
তাদের নামে থাকা ফাইলগুলি (যেমন ) বাদ দেয় না file.aspx.asp
।
স্যুইচটি ফাইলের নাম / পাথের খাঁটি তালিকাটি ফিরিয়ে /B
দেয় dir
, যা সঠিকভাবে ফিল্টার করা যায়। বিকল্পটি /A:-D
কোনও মেলানো ডিরেক্টরি বাদ দেয়।
বিকল্পভাবে, where
কমান্ডটি ব্যবহার করা যেতে পারে, যা ওয়াইল্ডকার্ডগুলির চেয়ে আলাদাভাবে পরিচালনা করে dir
:
where /R "." "*.asp"
অসুবিধা হল যে এই কমান্ড এছাড়াও বিষয়বস্তুর শুভেচ্ছা হল PATHEXT
পরিবর্তনশীল, তাই এই একটি ফাইল শেষ হয় মেলে দিবে .asp.exe
, প্রদত্ত যে .EXE
মধ্যে অন্তর্ভুক্ত করা হয় PATHEXT
; এটি এড়াতে, আপনি সাময়িকভাবে PATHEXT
পরিবর্তনশীল (দ্বারা set "PATHEXT_BACKUP=%PATHEXT%" & set "PATHEXT="
) সাফ করতে পারেন এবং এটি পরে (পুনরায়) পুনরুদ্ধার করতে পারেন set "PATHEXT=%PATHEXT_BACKUP%" & set "PATHEXT_BACKUP="
।
ব্যবহারকারী কনরাদের এই উত্তরটি 3 টিরও বেশি অক্ষরযুক্ত একটি আইটেমের 8.3 ফাইলের নাম তৈরির ডিফল্ট আচরণ পরিবর্তন করার একটি উপায় দেখায়, যার ফলে এই জাতীয় বেশিরভাগ অনিচ্ছাকৃত ম্যাচগুলিকে বাধা দেয়। তবে দুর্ভাগ্যক্রমে এটি কোনও বর্তমান 8.3 ফাইলের নাম পরিবর্তন করে না। এবং অবশ্যই তাত্ত্বিকভাবে এমন পরিস্থিতি থাকতে পারে যেখানে 8.3 ফাইলের নামগুলি এখনও বেশ সম্ভাবনা থাকলেও মিলছে।
আমাকে স্বীকার করতে হবে যে আমি এখনও এটি পরীক্ষা করিনি ...