Windows'ta bir dizin yapısını nasıl dışa aktarabilirim?


65

Windows Gezgini'nde, dizin yapısına genel bakışı görmek için bir ağaç görünümü vardır. Yapıyı diğer insanlarla paylaşmak istiyorum.

Bir bölümün dizin yapısının göz atılabilir bir ağaç görünümünü nasıl alabilirim ve bu dosya listesini dışa aktarabilir, böylece diğerleri bölüme erişmeden görebilirler?

Açıklığa kavuşturmak için dosyaları kendileriyle ilgilenmiyorum. Sadece tüm dosyaların hiyerarşik bir listesine ihtiyacım var. Hepsini sıkıştırmak istediğim şey değil .



İsterseniz , dizin listesini istediğiniz şekilde düz metne aktarmak için bir AutoIt betiği yazabilirim . Daha sonra bir stil görünümünde tekrar dizin görünümünde ayrıştırmak için bir program yazabilirsiniz.
Atılım

Yığın Taşması ile ilgili soru .
trejder

Yanıtlar:


85

Dizin ağacınızın makul boyutta olduğunu varsayarsak, treeoldukça hoş görünümlü bir dizin ağacı oluşturan yerleşik komutu da kullanabilirsiniz . Ne yazık ki bu güzellik bir cmd örneğinin dışında çalışmak zordur, bu yüzden muhtemelen sadece /Aanahtarla ascii karakterlerini kullanmasını söylemek isteyeceksiniz .

Örnek:

Küçük bir çok seviyeli yapıdan

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

Daha sonra böyle bir komutu kullanarak bunu bir dosyaya yönlendirebilirsiniz:

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

Dizin yolunun isteğe bağlı olduğu, ancak geçerli çalışma dizini olmayan bir şeyi ağaçlamak istiyorsanız kullanışlıdır.


2
Bu çıkışı ayrıca aşağıdakileri yaparak bir metin dosyasına yönlendirebilirsiniz:tree E: \A \F > output.txt
xan

@xan; Hata! Bu cevabın önemli kısmıydı ve ben de tamamen unuttum! Teşekkürler
Phoshi

@xan sadece FYI, /komut satırı argüman tanımlayıcıları için eğik çizgi ( ) yerine eğik çizgi ( ) kullanmanız gerekir . Ters eğik çizgiler, Windows sistemlerinde dizin ağacı ayırıcılarıdır.
Atılım

3
@Breakthrough: Boğmaca - evet, tree E: /A /F > output.txt- eğik çizgilerimi yanlış yazdı !
xan

6
Buna /fbenzer bir seçenek ekleyerek ağaç yapısında üst klasörlerinin altındaki dosya adlarını da gösterebilirsiniz :tree /A /f ["directory path"] > tree.txt
Ulysses Alves

19

kullanmak istiyorsanız , kod çok basittir ve çıktı güzeldir.

Kod:

Get-ChildItem | tree

İle

Get-ChildItem | tree > foo.txt

çıktıyı bir Textfile'e yönlendirebilirsiniz.

Örnek çıktı:

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

10

Sonuçları doğrudan panoya da yerleştirebilirsiniz (Vista + 'da):

tree | clip

9

Büyük olasılıkla, TREEkomutun çıktısını (örneğin TREE /F > output.txt) bu durumda istemekle birlikte, çıktı olarak ham metin varsa, komut isteminde aşağıdakileri çalıştırabilirsiniz:

DIR C:\ /S > output.txt

Geçerli çalışma dizininde output.txt dosyasının üretileceği ve C:sürücüdeki tüm dosya ve dizinlerin bir listesini içerdiği yer . Yalnızca tam yolu olan bir dosya çıktısı istiyorsanız , aşağıdakileri çalıştırın:

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

Çıktıyı tekrar görüntülemeniz için bir dizin görünümü stil programına dönüştürmek üzere bir program yazmak da önemsiz bir iş olacaktır.


7

Komut istemi penceresini aç -> Dizin yolunuza gidin

Sonra oluşturmak için aşağıdaki komutu çalıştırın.

tree /f /a > tree.doc

Üstteki komut, klasör ve dosyaların yapısını özyinelemeli hale getirir ve word belge dosyasına dışa aktarır. Aynı klasörde oluşturulan "tree.doc" dosyasını bulabilirsiniz.


5

Aşağıdaki powershell komutunu kullanın, ayrıca onu Xml, csv veya veritabanına verebileceğinizi unutmayın. Ayrıca tam adı ve adı kısıtlı özelliklere sahibim, değiştirilmiş zaman damgası vb. Gibi diğer özellikleri kullanabilirsiniz.

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

3

Bunun için özel bir program hazırladım - Directory Snapshot .
Bir dizini yinelemeli olarak yineler ve karşılaştığı tüm dosya ve klasörlerin adlarını ve boyutlarını giriş dizininkine benzer bir organizasyonu olan düzgün bir şekilde yapılandırılmış HTML dosyalarında saklar.
Başka bir deyişle, bu, komutların dir /sveya köprülü bir versiyon olarak düşünülebilir tree /f.


2

Her dizindeki dosya sayısını geçerli konumunuzdan listelemek istiyorsanız, bu powershell betiğini deneyin ...

$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 }


0

Yalnızca dizinleri kopyalamak için / t ve / E seçenekleriyle xcopy komutunu kullanabilirsiniz. Bu, yapının eksiksiz ve göz atılabilir bir kopyasını alır ve sorunuzun ilk bölümünü yanıtlar. Yine de dosyaları görüntülemenize izin vermiyor ...


0

Bir dizin yapısının tamamını tek bir dosyaya sıkıştırıp, örneğin bir ağdan aktarabilir veya bir USB diske yerleştirebileceğiniz WinZIP gibi bir arşivleme aracı kullanabilirsiniz. Bazı araçlar salt okunur, arşiv vb. Bayraklar da tutacaktır.

Linux altında, bu tür bir eylem için en sevdiğim araç tar. Bu, tüm dizini yapmayı tek bir dosyaya çekecek, aslında her şeyi sıkıştırmak için gzip ile birleştirebileceğim.


-1

Komut istemine girip girmenin en kolay yolunu buldum (benim durumumda K: dizinine ihtiyacım vardı)

tree K: > tree.doc

Kullanıcı dostu bir şeye ihtiyacım olduğu için bir Word belgesi seçtim. Word'de açarken sadece MS-Dos seçin ve harika görünecek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.