बैच फ़ाइल; निर्देशिका में फ़ाइलों की सूची, केवल फ़ाइल नाम?


120

यह शायद एक बहुत ही सरल प्रश्न है, लेकिन मुझे इससे परेशानी हो रही है। असल में, मैं एक बैच फ़ाइल लिखने की कोशिश कर रहा हूं और मुझे एक निश्चित निर्देशिका में सभी फाइलों को सूचीबद्ध करने की आवश्यकता है। dirआदेश यह कर देगा, लेकिन यह भी अन्य जानकारी का एक समूह देता है; मैं चाहता हूं कि यह केवल फ़ाइल नामों को सूचीबद्ध करे और कुछ भी बाहर रखे।

मैं चाहता हूं कि आउटपुट इस तरह दिखे:

file1.txt
file2.txt
file3.txt

अग्रिम में धन्यवाद!


जवाबों:


236

पूरा आदेश है:

dir /b /a-d

मुझे इसे तोड़ने दो;

मूल रूप से वही /bहै जो आप खोजते हैं।

/a-d निर्देशिका नामों को शामिल नहीं करेगा।


अधिक जानकारी के dir /?लिए अन्य तर्कों के लिए देखें जिन्हें आप dirकमांड के साथ उपयोग कर सकते हैं ।


8
मेरे लिए ठीक है :) dir /b /a-d > tmp.txt
स्टीफन ग्रिलोन

2
यह /Sउप-निर्देशिकाओं के फ़ाइल नाम प्राप्त करने के लिए भी काम नहीं करता है ।
फरहान घुमरा

@xyroid क्या आपने सेल्टीन पढ़ा है /a-d will the exclude directory names?
Stephan

4
अगर मैं उप-निर्देशिका फ़ाइलों के नाम प्रिंट करना चाहता हूं तो यह बाहर नहीं है।
फरहान घुमरा

यह मेरी जरूरत के बहुत करीब था। मुझे उपनिर्देशिकाओं में पूर्ण पथ और पुनरावृत्ति की आवश्यकता थी। यहाँ मैंने क्या इस्तेमाल किया है:dir /B /A-D /S
EmpathicSage

34

आप यह भी आज़मा सकते हैं:

for %%a in (*) do echo %%a

एक forलूप का उपयोग करके , आप echoवर्तमान निर्देशिका के सभी फ़ाइल नाम बाहर कर सकते हैं।

उन्हें सीधे कंसोल से प्रिंट करने के लिए:

for %a in (*) do @echo %a

7

यदि आपको उपनिर्देशिका की आवश्यकता है, तो आपको "dir" कमांड और "For" कमांड की आवश्यकता है

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

अपनी रूट डायरेक्टरी को dir कमांड में रखें। यह पूर्ण पथ नामों के साथ एक list1.txt बनाएगा और फिर केवल फ़ाइल नामों के साथ एक list.txt।


5

1. ओपेन नोटपैड

2. नई फ़ाइल बनाएँ

3. टाइप बेली लाइन

dir /b > fileslist.txt

4.Save " list.bat"

बस। अब आप list.batअपने किसी भी "फ़ोल्डर" फ़ाइल को कॉपी और पेस्ट कर सकते हैं और इसे डबल क्लिक कर सकते हैं, यह fileslist.txtउस निर्देशिका फ़ोल्डर और फ़ाइल नाम सूची के साथ एक " " बना देगा ।

नमूना आउटपुट: यहां छवि विवरण दर्ज करें

नोट: यदि आप सब फोल्डर के साथ फाइल नेम लिस्ट बनाना चाहते हैं, तो आप bellow कोड वाली बैच फाइल बना सकते हैं।

dir /b /s > fileslist.txt

2
अगर मैं नहीं चाहता कि सूची में आउटपुट फ़ाइल "fileslist.txt" को शामिल किया जाए?
बेहनाम

4
  • whereइसके बजाय उपयोग क्यों नहीं dir?

कमांड लाइन में:

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

बल्ले / सेमी फ़ाइल में:

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • आउटपुट:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • आउटपुट:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

पुनरावर्ती के लिए:

where /r . *
  • आउटपुट:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • पाश के लिए पथ और नाम प्राप्त करें:

  • कमांड लाइन में:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • बल्ले / सेमी फ़ाइल में:
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • आउटपुट:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • पाश के लिए पथ और नाम पुनरावर्ती प्राप्त करें:

कमांड लाइन में:

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

बल्ले / सेमी फ़ाइल में:

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • आउटपुट:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

विंडोज 10:

  1. cmd खोलें

  2. वह निर्देशिका बदलें जहाँ आप फ़ोल्डर के लिए पाठ फ़ाइल (movie_list.txt) बनाना चाहते हैं (d: \ videos \ movies)

  3. निम्न आदेश टाइप करें

    d: \ videos \ Movies > dir / b / ad> movie_list.txt


2

निम्नलिखित कोड के साथ एक बैच-फ़ाइल बनाएँ:

dir %1 /b /a-d > list.txt

फिर उस पर डायरेक्टरी को ड्रैग एंड ड्रॉप करें और डायरेक्टरी के अंदर की फाइल्स को list.txt में लिस्ट किया जाएगा


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.