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, 10238 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
Outlook 2010 Userprofile Foto anzeigen lassen (2)

Frage von staybb zum Thema Outlook & Mail ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...