ฉันจะส่งออกโครงสร้างไดเรกทอรีใน Windows ได้อย่างไร


65

ใน Windows Explorer มีมุมมองแบบต้นไม้เพื่อดูภาพรวมของโครงสร้างไดเรกทอรี ฉันต้องการแบ่งปันโครงสร้างให้ผู้อื่น

ฉันจะรับมุมมองแบบต้นไม้ที่สามารถเรียกดูได้ของโครงสร้างไดเรกทอรีของพาร์ติชันและส่งออกรายชื่อไฟล์เพื่อให้ผู้อื่นสามารถดูได้โดยไม่ต้องเข้าถึงพาร์ติชัน

เพื่อชี้แจงฉันไม่สนใจไฟล์เอง ฉันต้องการรายชื่อไฟล์ทั้งหมดแบบลำดับชั้น การบีบอัดข้อมูลทั้งหมดนี้ไม่ใช่สิ่งที่ฉันต้องการ


1
สิ่งนี้อาจช่วยได้: วิธีพิมพ์
แผนผัง

ถ้าคุณต้องการฉันสามารถเขียนสคริปต์AutoItเพื่อส่งออกรายชื่อไดเรกทอรีไปเป็นข้อความธรรมดาในรูปแบบที่คุณต้องการ จากนั้นคุณสามารถเขียนโปรแกรมเพื่อแยกวิเคราะห์มันกลับไปในมุมมองไดเรกทอรีเช่นสไตล์
พัฒนา

คำตอบ:


85

สมมติว่าทรีไดเรกทอรีของคุณมีขนาดที่เหมาะสมคุณสามารถใช้treeคำสั่งในตัวซึ่งจะสร้างทรีไดเรกทอรีที่ดูค่อนข้างสวย น่าเสียดายที่ความน่ารักใจนี้ยากที่จะทำงานนอกอินสแตนซ์ cmd ดังนั้นคุณอาจต้องการบอกให้ใช้แค่ตัวอักษร ascii กับ/Aสวิตช์

ตัวอย่าง:

จากโครงสร้างหลายระดับขนาดเล็ก

+---A
|   +---A
|   \---B
+---B
|   \---A
|       \---A
\---C

จากนั้นคุณสามารถเปลี่ยนเส้นทางสิ่งนี้ไปยังไฟล์โดยใช้คำสั่งเช่น:

tree /A ["directory path"] > tree.txt

โดยที่เส้นทางของไดเรกทอรีนั้นเป็นทางเลือก แต่มีประโยชน์หากคุณต้องการสร้างสิ่งที่ไม่ใช่ไดเรกทอรีการทำงานปัจจุบัน


2
คุณยังสามารถtree E: \A \F > output.txt
ไพพ์

@xan; อ๊ะนั่นเป็นคำตอบที่สำคัญและฉันก็ลืมไปโดยสิ้นเชิง! ขอบคุณ
Phoshi

@xan เพียงแค่ FYI คุณต้องใช้เครื่องหมายทับ ( /) แทนเครื่องหมายแบ็กสแลชสำหรับตัวระบุอาร์กิวเมนต์บรรทัดคำสั่ง แบ็กสแลชเป็นตัวคั่นทรีไดเรกทอรีในระบบ Windows
พัฒนา

3
@Breakthrough: อ๊ะ - ใช่tree E: /A /F > output.txt- พิมพ์เครื่องหมายทับของฉันผิด!
xan

6
นอกจากนี้คุณยังสามารถแสดงชื่อไฟล์ใต้โฟลเดอร์หลักของพวกเขาในโครงสร้างต้นไม้โดยเพิ่ม/fตัวเลือกดังนี้:tree /A /f ["directory path"] > tree.txt
Ulysses Alves

19

ถ้าคุณต้องการใช้รหัสนั้นง่ายมากและผลลัพธ์ก็ดี

รหัส:

Get-ChildItem | tree

กับ

Get-ChildItem | tree > foo.txt

คุณสามารถไพพ์เอาต์พุตไปยัง Textfile

ตัวอย่างผลลัพธ์:

Auflistung der Ordnerpfade für Volume System
Volumeseriennummer : 48E9-F43B
C:.
├───Contacts
├───Desktop
├───Downloads
│   └───Evernote Import
├───Dropbox
│   ├───Apps
│   │   └───iftttcom
│   │       └───getpocketpdf
│   ├───Backup
│   ├───Camera Uploads
│   ├───Development


9

ในขณะที่คุณต้องการส่งออกTREEคำสั่ง (เช่นTREE /F > output.txt) ในกรณีนี้หากข้อความดิบเป็นผลลัพธ์ไม่เป็นไรคุณสามารถเรียกใช้สิ่งต่อไปนี้จากพรอมต์คำสั่ง:

DIR C:\ /S > output.txt

โดยที่ output.txt จะถูกสร้างขึ้นในไดเรกทอรีการทำงานปัจจุบันและมีรายการของไฟล์และไดเรกทอรีทั้งหมดในC:ไดรฟ์ หากคุณต้องการเพียงแค่เอาต์พุตไฟล์ที่มีพา ธเต็มให้รันดังนี้:

DIR C:\ /B /S > output.txt

นอกจากนี้ยังเป็นงานที่สำคัญที่จะเขียนโปรแกรมเพื่อแยกวิเคราะห์ผลลัพธ์กลับไปยังโปรแกรมสไตล์ไดเรคทอรีมุมมองเพื่อให้คุณดู


7

เปิดหน้าต่างพรอมต์คำสั่ง -> ไปที่เส้นทางไดเรกทอรีของคุณ

จากนั้นรันคำสั่งต่อไปนี้เพื่อสร้าง

tree /f /a > tree.doc

คำสั่งด้านบนจะทำให้โครงสร้างโฟลเดอร์และไฟล์วนซ้ำและส่งออกเป็นไฟล์เอกสารคำ คุณสามารถค้นหา "tree.doc" ที่สร้างขึ้นในโฟลเดอร์เดียวกัน


5

ใช้คำสั่ง powershell ต่อไปนี้โปรดจำไว้ว่าคุณสามารถส่งออกไปยัง Xml, csv หรือฐานข้อมูล นอกจากนี้ฉันมีคุณสมบัติที่ จำกัด ชื่อเต็มและชื่อคุณสามารถใช้คุณสมบัติอื่น ๆ เช่นการแก้ไขเวลา ฯลฯ

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv

3

ผมได้สร้างโปรแกรมเฉพาะสำหรับการนี้ - สารบบ Snapshot
ซ้ำซ้ำผ่านไดเรกทอรีและจัดเก็บชื่อและขนาดของไฟล์และโฟลเดอร์ทั้งหมดที่พบในไฟล์ HTML ที่มีโครงสร้างที่เรียบร้อยซึ่งมีหน่วยงานคล้ายกับของไดเรกทอรีอินพุต
ในคำอื่น ๆ นี้สามารถคิดว่าเป็นรุ่นที่เชื่อมโยงหลายมิติของคำสั่ง dir /sหรือtree /f


2

ลองใช้สคริปต์ PowerShell นี้หากคุณต้องการแสดงจำนวนไฟล์ในแต่ละไดเรกทอรีจากตำแหน่งปัจจุบันของคุณ ...

$dirs = Get-ChildItem -recurse | Where{$_.psIsContainer -eq $true} ; ForEach($d in $dirs){ "{0,6} | {1,-1}" -f (Get-ChildItem -path $d.fullname -recurse | where {$_.psIsContainer -ne $true}).count,$d.fullname >> file_counts.txt }

1

แม้ว่านี่จะได้รับคำตอบแล้ว แต่ฉันมาหาวิธีแก้ปัญหา แต่หาไม่เจอ

มองเพิ่มเติมฉันพบนี้: http://gnuwin32.sourceforge.net/packages/tree.htm

โดยที่ฉันสามารถทำตามคำแนะนำของhttp://nsaunders.wordpress.com/2010/11/16/dropbox-tip-continued-convert-a-file-tree-to-html/และสร้างต้นไม้ HTML ของฉัน โฟลเดอร์สาธารณะของ Dropbox และด้วยวิธีนี้จึงทำให้แผนผังไดเรกทอรีนั้นใช้งานง่ายมาก


0

คุณสามารถใช้ xcopy กับตัวเลือก / T และ / E เพื่อคัดลอกเฉพาะไดเรกทอรี นั่นจะทำให้คุณได้สำเนาที่สมบูรณ์และเรียกดูได้ของโครงสร้างและตอบคำถามแรกของคุณ ไม่อนุญาตให้คุณดูไฟล์แม้ว่า ...


0

คุณสามารถใช้เครื่องมือเก็บถาวรเช่น WinZIP ที่สามารถซิปโครงสร้างไดเรกทอรีทั้งหมดเป็นไฟล์เดียวที่คุณสามารถทำได้เช่นถ่ายโอนบนเครือข่ายหรือวางบนดิสก์ USB เครื่องมือบางอย่างจะเก็บค่าสถานะเช่นอ่านอย่างเดียวเก็บถาวรและอื่น ๆ

ภายใต้ Linux เครื่องมือที่ฉันโปรดปรานสำหรับการกระทำเช่นนี้คือ tar ซึ่งจะนำโครงสร้างไดเรกทอรีทั้งหมดไปเป็นไฟล์เดียวซึ่งฉันสามารถจับคู่กับ gzip เพื่อบีบอัดข้อมูลทั้งหมดได้


-1

ฉันพบวิธีที่ง่ายที่สุดในการรับคำสั่งและป้อน (ในกรณีของฉันฉันต้องการไดเรกทอรี K:)

tree K: > tree.doc

ฉันเลือกเอกสาร Word เนื่องจากต้องการสิ่งที่ผู้ใช้เข้าใจง่าย เพียงเลือก MS-Dos เมื่อเปิดใน Word แล้วมันจะดูดีมาก

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