Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Verzeichnis mit Unterverzeichnisse ausgeben - V-Tiefe bestimmen oder bzw und keine Dateien

Frage Entwicklung Batch & Shell

Mitglied: Muckel1986

Muckel1986 (Level 1) - Jetzt verbinden

02.12.2012, aktualisiert 17:54 Uhr, 2742 Aufrufe, 2 Kommentare

Verzeichnis mit Unterverzeichnisse ausgeben 1. selbst Festlegen bis zu welcher Verzeichnis-Tiefe 2. Oder bzw. und bei allen Unterverzeichnissen (wie dir /s) ohne Dateien.

Hallo,
möchte die Verzeichnisse meiner Foto-Sammlung ausgeben um so verglkeichen zu können, ob z.B. auf einer HDD alle Alben kopiert wurden und für einige anderen Sachen. Doch wie kann ich die Verzeichnis-Tiefe bestimmen oder/und Dateien weg lassen?

Hallo zusammen,

habe das Problem, dass ich ein paar Sammlungen auf meinen Festplatten habe. So zum Beispiel auch für meine eigenen Fotos. Sortiert sind sie so:

- Sammlung
--> aus dem Jahr 2012
----> 2012-01-01Silvester-2011-auf-2012
----> 2012-05-07-Geburtstag-von-XYZ
----> 2012-08-06-Urlaubsbilder-Sommer-2012
----> und so weiter
--> aus dem Jahr 2011
----> 2011-01-01Silvester-2010-auf-2011
----> 2011-05-07-Geburtstag-von-XYZ
----> 2011-08-06-Urlaubsbilder-Sommer-2012
----> und so weiter
- Scans und eingelesene Bilder
- Sonstige Bilder
- und so weiter

Teilweise gibt es zu den "Ereignis-Alben" auch noch Unteralben, zum Beispiel wenn ich eine andere Bildauflösung brauchte oder etwas nachgearbeitet wurde.

Habe nun das Problem, dass ich mir alle Verzeichnisse mit Unterverzeichnissen ausgeben möchte. In der Regel ist das ja in der Konsole (cmd) mit dem Befehl dir /s möglich und ich kan mir das auch in eine Textdatei schreiben lassen (dir >> Uebersicht-meiner-Fotos-stand-2012-12-01.txt /s)

Mein Problem dabei ist, dass dann aber auch alle Dateien aufgelistet werden. Jene brauche ich aber nicht. Zwar kann ich zum Beispiel die Funktion "Suchen und Ersetzen" nutzen, und jeden Eintrag mit *.jpg entfernen oder durch Leerzeichen ersetzen, aber so wirklich klappt das auch nicht.

Daher suche ich eine Möglichkeit, wie ich in einem Verzeichnis alle Unterverzeichnisse ausgeben kann und selber dabei die Verzeichnis-Tiefe bestimmen kann.

Über einen Tipp, Script, Hilfe würde ich mich sehr freuen!

Liebe Grüße
Tobias
Mitglied: rubberman
02.12.2012 um 18:56 Uhr
Hallo Tobias,

über Rekursion sollte das machbar sein.
01.
@echo off &setlocal 
02.
set "root=C:\meine bunten Bilder" 
03.
set /a "currDepth = 0, maxDepth = 2" 
04.
 
05.
>"out.log" (call :tree "%root%" %currDepth%) 
06.
 
07.
goto :eof 
08.
 
09.
:tree 
10.
setlocal DisableDelayedExpansion 
11.
  pushd "%~1" 
12.
  set /a "currDepth += 1" 
13.
  setlocal EnableDelayedExpansion 
14.
    set "spcs=" 
15.
    for /l %%i in (1,1,%~2) do set "spcs=!spcs!  " 
16.
  endlocal &set "spcs=%spcs%" 
17.
  for /f "delims=" %%i in ('dir /ad /b') do ( 
18.
    echo %spcs%%%i 
19.
    if %currDepth% leq %maxDepth% call :tree "%%~i" %currDepth% 
20.
21.
  popd 
22.
endlocal 
23.
goto :eof
Grüße
rubberman
Bitte warten ..
Mitglied: Friemler
02.12.2012, aktualisiert um 22:36 Uhr
Hallo Tobias,

von mir noch eine Lösung in VBScript:
01.
Set colArguments = WScript.Arguments 
02.
Set objFSO       = CreateObject("Scripting.FileSystemObject") 
03.
 
04.
If colArguments.Count > 2 Then 
05.
  strBaseFolder = objFSO.GetAbsolutePathName(colArguments(0)) 
06.
  intMaxDepth   = CInt(colArguments(1)) 
07.
  intType       = CInt(colArguments(2)) 
08.
 
09.
  If objFSO.FolderExists(strBaseFolder) Then 
10.
    Select Case intType 
11.
      Case 1 TraverseTree1 strBaseFolder, 1 
12.
      Case 2 TraverseTree2 strBaseFolder, 1 
13.
      Case Else WScript.StdErr.WriteLine "Unbekannter Ausgabetyp." 
14.
    End Select 
15.
  Else 
16.
    WScript.StdErr.WriteLine "Pfad nicht gefunden." 
17.
  End If 
18.
Else 
19.
  WScript.StdErr.WriteLine "Fehlende Parameter." 
20.
End If 
21.
 
22.
 
23.
 
24.
Sub TraverseTree1(strFolder, intDepth) 
25.
  On Error Resume Next 
26.
 
27.
  Dim objFolder, objSubFolder 
28.
 
29.
  Set objFolder = objFSO.GetFolder(strFolder) 
30.
 
31.
  For Each objSubFolder In objFolder.SubFolders 
32.
    If Not (objSubFolder.Attributes And &H0406) > 0 Then 
33.
      WScript.Echo Space((intDepth - 1) * 2) & objSubFolder.Name 
34.
      If intDepth < intMaxDepth Then TraverseTree1 objSubFolder.Path, intDepth+1 
35.
    End If 
36.
  Next 
37.
End Sub 
38.
 
39.
 
40.
 
41.
Sub TraverseTree2(strFolder, intDepth) 
42.
  On Error Resume Next 
43.
 
44.
  Dim objFolder, objSubFolder 
45.
 
46.
  Set objFolder = objFSO.GetFolder(strFolder) 
47.
 
48.
  For Each objSubFolder In objFolder.SubFolders 
49.
    If Not (objSubFolder.Attributes And &H0406) > 0 Then WScript.Echo objSubFolder.Path 
50.
  Next 
51.
 
52.
  If intDepth < intMaxDepth Then 
53.
    For Each objSubFolder In objFolder.SubFolders 
54.
      If Not (objSubFolder.Attributes And &H0406) > 0 Then TraverseTree2 objSubFolder.Path, intDepth+1 
55.
    Next 
56.
  End If 
57.
End Sub
Aufruf:
cscript /nologo "ScriptName.vbs" "Basisverzeichnis" Tiefe Ausgabetyp
Die Parameter Basisverzeichnis und Tiefe sollten klar sein. Über den Parameter Ausgabetyp kann gesteuert werden, ob die Verzeichnisstruktur in Baumform ausgegeben wird (Ausgabetyp=1, sieht so ähnlich wie die Ausgabe von rubbermans Script aus) oder ob eine verzeichnisweise Liste aller Ordner (Ausgabetyp=2) ausgegeben wird.

Vezeichnisse, bei denen die Attribute Hidden oder System gesetzt sind oder die nur ein NTFS-Link auf ein Verzeichnis sind, werden nicht verarbeitet.

Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Alle Dateien in Verzeichnis und Unterverzeichnissen löschen, mit Ausnahme aller.txt-Dateien
gelöst Frage von tegwertBatch & Shell5 Kommentare

Hallo zusammen! Ich habe zum löschen aller Dateien in bestimmten Verzeichnissen und dessen Unterverzeichnissen folgende Batchzeile erstellt: Dabei muss ...

Batch & Shell
Kopieren von Dateien aus Unterverzeichnissen!
gelöst Frage von DeadseraphimBatch & Shell3 Kommentare

Hallo in die Runde, ich habe folgendes Problem: Im Verzeichnis: C:\Schriftverkehr befinden sich mehrere Unterverzeichnisse mit den Bezeichnungen: \Dokumentenklassen1 ...

Batch & Shell
Dateien in Unterverzeichnissen auflisten mit Attributen
gelöst Frage von goodbytesBatch & Shell4 Kommentare

Hallo, ich habe sehr viele Dateien in einem Ordner mit vielen Unterordnern. Per Batch oder vbs oder vba aus ...

VB for Applications
VBScript alle Word dateien einem Verzeichnis und Unterverzeichnissen öffnen und Makro Ausführen
Frage von alex-fwVB for Applications5 Kommentare

Hallo, ich versuche ein VBSScript zu basteln, welche mir weiter helfen kann. Im einem Verzeichnis und Unterverzeichnissen sind mehrere ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 6 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 6 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 14 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...