Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 02.07.2010 um 08:31:05 Uhr
Tja, leider kommt wohl kein Feedbäck mehr...
Ich setze den Beitrag mal auf "beantwortet".
Zum Schreddern ist er doch zu schade.
GELÖST

Nur Verzeichnisse und deren erstes Unterverzeichnis anzeigen

Frage Entwicklung Batch & Shell

Mitglied: Mario.Steinberg

Mario.Steinberg (Level 1) - Jetzt verbinden

28.05.2010, aktualisiert 02.07.2010, 10392 Aufrufe, 6 Kommentare

Hallo,

mittels dir /a:d /s /b kann ich alle Verzeichnisse in einem Ordner und deren Unterverzeichnisse anzeigen.
Gibt es eine Möglichkeit, nur bis zu ersten Ebene zu gehen?

Wenn z.B. die Stucktur folgendermaßen ist:

Folder1->Folder2->Folder3

möchte ich nur

Folder1
Folder1/Folder2

sehen und nicht

Folder1
Folder1/Folder2
Folder1/Folder2/Folder3

Dabnke und Gruß,
Mario

Edit:
Besser wäre noch nur
Folder1/Folder2
Mitglied: godlie
28.05.2010 um 14:18 Uhr
Hallo,

so grob theoretisch dürfte sowas in etwa hinhauen:

01.
for /F %i in ('dir /A:D /b') DO @echo %i\ & @dir /A:D /b %i
is nur so ne grobe ausgabe.

edit habs mal überarbeitet.
Bitte warten ..
Mitglied: bastla
28.05.2010 um 14:22 Uhr
... oder so:
for /d %i in (*.*) do @for /d %a in ("%~i\*.*") do @echo %a
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
28.05.2010 um 15:02 Uhr
Hallo nochmal Mario,

nein, Dir bietet keine möglichkeit die Folderlevel zu begrenzen, das kannst du aber mit mehreren gestaffelten For Schleifen nachbilden.

Ich habe so was mal mit rekursiv aufgerufener Sub realisiert - aber du magst Subs ja scheinbar nicht so sehr
Meine Suche danach hat länger gedauert, bastla hat ja schon eine funktionierende Lösung gepostet.

Diese Batchdatei geht vom vorgegebenen Pfad ebenfalls vorgegebene Level tief und zeigt den kompletten Pfad an,
dabei werden nur Ordner der entsprechenden Levelzahl angezeigt.

01.
:: DirLevel.cmd ::::::::::::::::::::::::::::::::::::::::::::::::::::: 
02.
@Echo off 
03.
If NOt Exist "%~1" Goto :Usage 
04.
:: Default ist aktueller Ordner und Tiefe 1 
05.
If "%1" EQU "" Call :DirLevel . 1 & Goto :Eof 
06.
:DirLevel 
07.
Set /A Level=%~2 -1 
08.
Pushd %1 >NUL 2>&1 
09.
For /F "delims=" %%A in ('Dir /B /AD 2^>NUL') do If %Level% LSS 1 ( 
10.
  Echo %%~fA 
11.
) Else ( 
12.
  Call :DirLevel "%%~fA" %Level% 
13.
14.
Popd 
15.
Goto :EOF 
16.
:Usage 
17.
Echo Usage: %~f0 x:\Ordner D  
18.
Echo    D : Dezimalziffer Leveltiefe ab angegebenem Ordner 
19.
Goto :Eof
Gruß
LotPings
Bitte warten ..
Mitglied: Biber
28.05.2010 um 17:09 Uhr
Moin Mario Steinberg,

zwei weitere Varianten möchte ich noch beisteuern.
Eine triviale, die nur passt, wenn der "Folder1" in deinem Beispiel direkt vom Root abgeht (z.B. D:\temp oder F:\dokus).

Dann reicht vom CMD-Prompt aus
>For /f "Delims=\ tokens=2-4" %a in ('dir /b /s /a:d x:\Folder1') do @if "%a%b" neq "" if "%c" equ "" @echo %a\%b 
... 
dokus\M$Openformats 
dokus\InsideActiveDirectory 
dokus\DB2 
dokus\Sql 
dokus\VbArchiv 
...
Variante 2 gilt auch, wenn der zu auszuwertende "relative" Ordner irgendwo beginnt, z.B selbst auf einer 3ten, 4ten, xten Unterebene liegt.
> REM z.B dieser Ordner ...in Anführungszeichen wegen evtl Leerzeichen und MIT abschliessendem Backslash definieren 
>set Folder1="c:\Dokumente und Einstellungen\Biber\" 
 
>for /f "delims=" %i in ('dir /b /a:d /s %Folder1%') do @if /i  "%~dpi" equ %Folder1% echo %i 
.... 
c:\Dokumente und Einstellungen\Biber\Cookies 
c:\Dokumente und Einstellungen\Biber\Desktop 
c:\Dokumente und Einstellungen\Biber\DokumentenAblage 
c:\Dokumente und Einstellungen\Biber\Favoriten 
.... 
>REM und wenn die Ausgabe so sein soll [mit Slash statt Backslash] wie von dir gewünscht: 
>for /d %a in (%Folder1%\..) do @for /f "delims=" %i in ('dir /b /a:d /s "%~a"') do @if /i  "%~dpi" equ "%~fa\" echo %~nxa/%~nxi 
Biber/Cookies 
Biber/Desktop 
Biber/DokumentenAblage 
Biber/Favoriten 
... 
P.S. Ich würde bei deinen Anforderungen als Ziel anstreben, das Ganze einmal am CMD-Prompt durchzukaspern und zu verstehen.
Einen (egal ob ein- oder 7zeiligen) Batch dafür irgendwo zu speichern, der dann wieder nur für ein bestimmtes Verzeichnis passt und für den dir wahrscheinlich kein sprechender Batch-Name einfällt, den du ja wieder intuitiv doppelklickst...so sparen Batche KEINE Zeit.


Grüße
Biber
Bitte warten ..
Mitglied: Biber
26.06.2010 um 20:37 Uhr
Moin Mario.Steinberg,

wie ist denn der gefühlte Beantwortetheitsgrad deiner Frage?
Hat es dich weitergebracht, zutiefst ratlos gemacht, ins Kloster getrieben, kann ein Haken dran oder sind Fragen offen?

Bitte um Feedback.
Biber
Bitte warten ..
Mitglied: AndreasW63
23.09.2013 um 11:12 Uhr
Hallo LotPings,
hallo Biber,

ich versucht habe das Skript "Dirlevel.cmd" anzupassen, um mir neben der Anzeige der Verzeichnisse in einer bestimmten Tiefe auch noch den Besitzer des Verzeichnisses anzeigen zu lassen.

Dazu habe ich dem Skript in Zeile 9 den Parameter /Q hinzugefügt.

:: DirLevel.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::::
@Echo off
If NOt Exist "%~1" Goto :Usage
:: Default ist aktueller Ordner und Tiefe 1
If "%1" EQU "" Call :DirLevel . 1 & Goto :Eof
:DirLevel
Set /A Level=%~2 -1
Pushd %1 >NUL 2>&1
For /F "delims=" %%A in ('Dir /B /AD /Q 2^>NUL') do If %Level% LSS 1 (
Echo %%~fA
) Else (
Call :DirLevel "%%~fA" %Level%
)
Popd
Goto :EOF
:Usage
Echo Usage: %~f0 x:\Ordner D
Echo D : Dezimalziffer Leveltiefe ab angegebenem Ordner
Goto :Eof

Vermutlich funktionieren die Parameter /B und /Q nicht gemeinsam in einer Zeile.
Das Ergebnis (Beispiel) sieht wie folgt aus:

q:\Vorarchiv\PROJEKTE\Exxxxxxxxp\2825
q:\Vorarchiv\PROJEKTE\Gxxxxe\2387
q:\Vorarchiv\PROJEKTE\Gxxxxe\2390
q:\Vorarchiv\PROJEKTE\Gxxxxe\2407
q:\Vorarchiv\PROJEKTE\Gxxxxe\2410
q:\Vorarchiv\PROJEKTE\Gxxxxe\2879
q:\Vorarchiv\PROJEKTE\Gxxxxxxk\2490
q:\Vorarchiv\PROJEKTE\Gxxxxxxk\2772
q:\Vorarchiv\PROJEKTE\Hxxxe\2982
q:\Vorarchiv\PROJEKTE\Hxxxxxxxxxxn\1315
q:\Vorarchiv\PROJEKTE\Hxxxxxxxxxxn\1797

Gibt es eine Lösung ?

Bitte um Antwort

Andreas
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 10
gelöst Dienste bei Systemstart anzeigen (2)

Frage von fluluk zum Thema Windows 10 ...

Debian
Var,log über Webserver anzeigen? (5)

Frage von Motte990 zum Thema Debian ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...