যদি আপনি এটি দিয়ে করতে চান cmd
, তবে নিম্নলিখিতটি করার জন্য তুচ্ছ উপায় হল:
set count=0 & for %x in (*) do @(set /a count+=1 >nul)
echo %count%
এটি কমান্ড লাইন ধরে নিচ্ছে। একটি ব্যাচ ফাইল আপনি করতে হবে
@echo off
setlocal enableextensions
set count=0
for %%x in (*) do set /a count+=1
echo %count%
endlocal
যা কিছুটা ভাল কাজ করে। আপনি >nul
একটি ব্যাচে ফেলে দিতে পারেন , যেহেতু set /a
কোনও ব্যাচ ফাইল থেকে চালানো হলে ফলাফলটি প্রদর্শিত হবে না — এটি কমান্ড লাইন থেকে সরাসরি করে। তবু লুপের %
সাইনটি for
দ্বিগুণ করতে হবে।
আমি বেশ কয়েকটি উদাহরণ দেখেছি যেখানে লোকেরা নিফটির কৌশল চেষ্টা করে find /c
। হতে খুব ঐ সতর্ক থাকুন, যেমন বিভিন্ন জিনিষ এই ভেঙ্গে দিতে পারে।
সাধারণ ভুল:
find /c /v
কোনও ফাইলের নামের সাথে কখনই অন্তর্ভুক্ত নয় এমন কোনও জিনিস ব্যবহার করে অনুসন্ধান করার চেষ্টা করুন ::
। করা হবে না। ওয়ার্ক। নির্ভরযোগ্যভাবে। কনসোল উইন্ডোটি রাস্টার ফন্টে সেট করা থাকলে আপনি সেই অক্ষর সংমিশ্রণটি পেতে পারেন । আমি যেমন একটি ফাইলের নাম অক্ষর অন্তর্ভুক্ত করতে পারে :
, ?
ইত্যাদি উদাহরণস্বরূপ তাদের পূর্ণ-প্রস্থের রূপগুলো, যা তাদের স্বাভাবিক হওয়া ASCII প্রতিরূপ যা এই ভঙ্গ করবে রূপান্তরিত হবে হবে। আপনার যদি একটি সঠিক গণনা প্রয়োজন, তবে এটি চেষ্টা করবেন না।
সর্বদা একটি ফাইলের নামের অন্তর্ভুক্ত find /c
এমন কিছু ব্যবহার করে চেষ্টা করুন । স্পষ্টতই ডট ( ) একটি খারাপ পছন্দ is আর একটি উত্তর প্রস্তাব দেয়.
dir /a-d | find /c ":"
যা ব্যবহারকারীর লোকাল সম্পর্কে বেশ কয়েকটি বিষয় ধরে নিয়েছে, সেগুলির সবকটিই সত্য হওয়ার নিশ্চয়তা দেয় না (আমি সেখানে সমস্যার বিবরণ দিয়ে একটি মন্তব্য রেখেছি) এবং একটি ফলাফল খুব বেশি দেয়।
সাধারণত, আপনি ব্যবহার করতে চান যার find
উপর dir /b
নন-ফাইলনামের সমস্ত জিনিস কেটে দেয় এবং ফেনসপোস্ট ত্রুটিগুলি এড়ানো যায়।
সুতরাং মার্জিত রূপটি হবে:
dir /b /a-d | find /c /v ""
যা প্রথমে সমস্ত ফাইলের নাম, প্রতিটি এক লাইন আউটপুট দেয়। এবং তারপরে আউটপুটটির সমস্ত লাইন গণনা করুন যা খালি নয়। যেহেতু ফাইলটির নাম খালি থাকতে পারে না (যদি না আমি কিছু মিস করছি তবে ইউনিকোড আমার পরীক্ষাগুলি অনুসারে এটিকে ট্রিপ করবে না)।