รายการไดเรกทอรีซ้ำใน DOS


201

เราจะได้รายชื่อไดเรกทอรีแบบเรียกซ้ำใน DOS ได้อย่างไร

ฉันกำลังมองหาคำสั่งหรือสคริปต์ใน DOS ซึ่งสามารถให้รายชื่อไดเรกทอรีซ้ำกับls -Rคำสั่งใน Unix ได้

คำตอบ:


361

คุณสามารถใช้ได้:

dir /s

หากคุณต้องการรายการโดยไม่มีข้อมูลส่วนหัว / ส่วนท้ายทั้งหมดลอง:

dir /s /b

(แน่นอนว่าสิ่งนี้จะใช้งานได้กับ DOS 6 และใหม่กว่าอาจทำงานได้ก่อนหน้านี้ แต่ฉันจำไม่ได้)


7
+1 มีประโยชน์มาก หากไดเรกทอรีของคุณมีไฟล์จำนวนมากคำสั่งนี้จะเลื่อนดูบนหน้าจอเร็วเกินไปที่จะอ่าน ฉันคิดว่าเป็นการดีที่สุดที่จะไพพ์เอาต์พุตของคำสั่งนี้ไปยังไฟล์ txt ที่คุณสามารถอ่านด้วยความเร็วของคุณเอง ตัวอย่างเช่น (สมมติว่ามีการสร้างไดเรกทอรี c: \ temp): dir C: \ / s> C: \ temp \ CDirectoryListing.txt
Steven Magana-Zook

คุณเป็นคนที่ยอดเยี่ยมจริงๆ! มันใช้งานได้เหมือนมีเสน่ห์! ฉันใช้มันในที่ทำงาน (ที่เราถูกบังคับให้มีเครื่อง windows) กับ gVIM! ดีมากจริง ๆ ! คุณช่วยฉันชั่วโมงปวดหัว!
Walialu

ด้วยเหตุผลบางอย่างมันพิมพ์พา ธ สัมบูรณ์แบบเต็มด้วยโฟลเดอร์ C: \ ด้านหน้าเมื่อใช้ / S และ / B นั่นป้องกันได้หรือไม่ ฉันแค่ต้องการชื่อไฟล์สัมพัทธ์
lama12345

2
ใช่ทำงานได้สมบูรณ์แบบด้วยการค้นหา / แทนที่ "C: / โฟลเดอร์" และแทนที่ด้วย ""
lama12345

22
เพียงเพิ่ม: tree /fให้การแสดงที่ถูกใจ :-)
อรุณ


23

คุณสามารถรับพารามิเตอร์ที่คุณต้องการโดยพิมพ์:

dir /?

สำหรับรายการทั้งหมดลอง:

dir /s /b /a:d

3

คุณสามารถใช้ตัวเลือกต่าง ๆ กับ FINDSTR เพื่อลบบรรทัดที่ไม่ต้องการเช่น:

DIR /S | FINDSTR "\-" | FINDSTR /VI DIR

เอาต์พุตปกติมีรายการดังนี้:

28-Aug-14  05:14 PM    <DIR>          .
28-Aug-14  05:14 PM    <DIR>          ..

คุณสามารถลบสิ่งเหล่านี้ได้โดยใช้ตัวเลือกการกรองต่างๆที่ FINDSTR นำเสนอ คุณสามารถใช้ unxutils ที่ยอดเยี่ยมได้ แต่มันจะแปลงเอาต์พุตเป็น UNIX ตามค่าเริ่มต้นดังนั้นคุณจะไม่ได้รับ CR + LF อีกต่อไป FINDSTR เสนอทางเลือก Windows ที่ดีที่สุด


ดี! dir /s /b | find /v /c ""ข้อกำหนดเพิ่มเติมของฉันคือการนับจำนวนบรรทัดทั้งหมดซึ่งจะทำด้วย
domih

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