ไฟล์ชุด; แสดงรายการไฟล์ในไดเร็กทอรีเฉพาะชื่อไฟล์?


121

นี่อาจเป็นคำถามที่ง่ายมาก แต่ฉันมีปัญหากับมัน โดยพื้นฐานแล้วฉันพยายามเขียน Batch File และฉันต้องการให้มันแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีบางรายการ dirคำสั่งจะทำแบบนี้ แต่มันยังช่วยให้พวงของข้อมูลอื่น ๆ ; ฉันต้องการให้แสดงเฉพาะชื่อไฟล์และไม่รวมสิ่งอื่นใด

ฉันแค่ต้องการให้ผลลัพธ์มีลักษณะดังนี้:

file1.txt
file2.txt
file3.txt

ขอบคุณล่วงหน้า!


คำตอบ:


237

คำสั่งเต็มคือ:

dir /b /a-d

ขอฉันทำลายมัน

โดยพื้นฐานแล้ว/bคือสิ่งที่คุณมองหา

/a-d จะไม่รวมชื่อไดเรกทอรี


สำหรับข้อมูลเพิ่มเติมโปรดดูdir /?อาร์กิวเมนต์อื่น ๆ ที่คุณสามารถใช้กับdirคำสั่ง


8
ก็โอเคสำหรับฉัน :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
ไม่สามารถใช้/Sเพื่อรับชื่อไฟล์ของไดเรกทอรีย่อยได้เช่นกัน
Farhan Ghumra

@xyroid คุณอ่าน seltene /a-d will the exclude directory namesหรือไม่?
Stephan

4
ไม่ยกเว้นหากฉันต้องการพิมพ์ชื่อไฟล์ไดเรกทอรีย่อย
Farhan Ghumra

สิ่งนี้ใกล้เคียงกับสิ่งที่ฉันต้องการมาก ฉันต้องการเส้นทางสัมบูรณ์และการเรียกซ้ำในไดเรกทอรีย่อย นี่คือสิ่งที่ฉันใช้: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

ใส่ไดเร็กทอรี root ของคุณในคำสั่ง dir มันจะสร้าง list1.txt ที่มีชื่อพา ธ แบบเต็มจากนั้น list.txt ที่มีเฉพาะชื่อไฟล์


5

1. เปิดแผ่นจดบันทึก

2. สร้างไฟล์ใหม่

3. พิมพ์เส้นร้อง

dir /b > fileslist.txt

4. บันทึก " list.bat"

แค่นั้นแหละ. ตอนนี้คุณสามารถคัดลอกและวางlist.batไฟล์ " " นี้ในตำแหน่งโฟลเดอร์ใดก็ได้ของคุณและดับเบิลคลิกที่ไฟล์นั้นมันจะสร้าง " fileslist.txt" พร้อมกับโฟลเดอร์ไดเร็กทอรีและรายการชื่อไฟล์

ตัวอย่างผลลัพธ์: ใส่คำอธิบายภาพที่นี่

หมายเหตุ: หากคุณต้องการสร้างรายการชื่อไฟล์พร้อมกับโฟลเดอร์ย่อยคุณสามารถสร้างไฟล์แบตช์ด้วยรหัสร้อง

dir /b /s > fileslist.txt

2
จะเกิดอะไรขึ้นถ้าฉันไม่ต้องการให้ไฟล์เอาต์พุต "fileslist.txt" รวมอยู่ในรายการ
Behnam

4
  • ทำไมไม่ใช้whereแทนdir?

ในบรรทัดคำสั่ง:

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

ในไฟล์ bat / cmd:

@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
  • สำหรับ loop get path และ name:

  • ในบรรทัดคำสั่ง:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • ในไฟล์ bat / cmd:
@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

ในไฟล์ bat / cmd:

@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

Windows 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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.