कैसे एक .bat या .cmd फ़ाइल के साथ निर्देशिका में प्रत्येक फ़ाइल पर पुनरावृति करते हैं?
सादगी के लिए कृपया एक उत्तर दें जो फ़ाइल नाम या फ़ाइल पथ को गूँजता है।
कैसे एक .bat या .cmd फ़ाइल के साथ निर्देशिका में प्रत्येक फ़ाइल पर पुनरावृति करते हैं?
सादगी के लिए कृपया एक उत्तर दें जो फ़ाइल नाम या फ़ाइल पथ को गूँजता है।
जवाबों:
कमांड लाइन का उपयोग:
for /f %f in ('dir /b c:\') do echo %f
बैच फ़ाइल का उपयोग:
for /f %%f in ('dir /b c:\') do echo %%f
अद्यतन : यदि निर्देशिका में नामों के स्थान वाली फाइलें हैं, तो आपको for /f
कमांड का उपयोग करने वाले सीमांकक को बदलने की आवश्यकता है। उदाहरण के लिए, आप पाइप चार का उपयोग कर सकते हैं।
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
अपडेट 2 : (मूल उत्तर के बाद डेढ़ साल बाद :-)) यदि निर्देशिका नाम में ही नाम है, तो आप इस usebackq
विकल्प का उपयोग कर सकते हैं for
:
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
और अगर आपको आउटपुट पुनर्निर्देशन या कमांड पाइपिंग का उपयोग करने की आवश्यकता है, तो एस्केप चार ( ^
) का उपयोग करें :
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
/f
जरूरत क्यों है for
? हेल्प डॉक्स के अनुसार, /f
झंडा प्रत्येक फाइल को खोलता और पढ़ता है। क्या फ़ाइलों को प्रतिध्वनित करने या नाम बदलने की आवश्यकता है?
/f
के बाद FOR
फ़ाइलों को यह अनुमति नहीं देता। इसी तरह, /d
निर्देशिका (फ़ोल्डर) पर प्रतिबंध लगाता है और /r
इसे पुनरावर्ती होने का निर्देश देता है।
'dir /b "c:\program files"'
यह होना चाहिए`dir /b "c:\program files"`
वैकल्पिक रूप से, उपयोग करें:
forfiles /s /m *.png /c "cmd /c echo @path"
फ़ोरफ़ाइल्स कमांड विंडोज विस्टा और ऊपर में उपलब्ध है।
सबसे आसान तरीका:
कमांड लाइन से, उपयोग करें:
for %f in (*.*) do echo %f
बैच फ़ाइल से (% प्रतिशत संकेतों को दोगुना):
for %%f in (*.*) do echo %%f
1 पैरामीटर के रूप में निर्दिष्ट फ़ोल्डर वाली बैच फ़ाइल से:
for %%f in (%1\*.*) do echo %%f
dir /B
आउटपुट का मूल्यांकन करने की तुलना में काफी अधिक सुरुचिपूर्ण भी for
।
उपयोग
for /r path %%var in (*.*) do some_command %%var
साथ में:
%%var was unexpected at this time.
क्या आप एक सटीक उदाहरण दे सकते हैं? मैंने for /r . %%var in (*.*) do echo %%var
दूसरा रास्ता:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
"%~nf"
विस्तार के बिना फ़ाइल के नाम के लिए खड़ा है, जहां भाग f
में निर्दिष्ट चर का नाम है for
। डॉक्स: docs.microsoft.com/en-us/prepret-versions/windows/it-pro/…