Hilfe bei Batch für Ordnerlisten
Hallo,
nach mehreren Versuchen mit unbefriedigendem Ergebnis wende ich mich mal an euch.
Schaffe es nicht eine vernünftige txt von meinen Ordnerinhalten zu erstellen.
Folgende Ausgangslage:
Ein Netzlaufwerk Z mit folgender Ordnerstruktur:
Ein Hauptordner,
darin befinden sich weitere Ordner von
zBsp A-Z und darin jeweils eine weitere Ordnerebene mit Dateien.
Von dieser letzten Ordnerebene benötige ich eine Liste mit nur den Namen aller Ordner alphabetisch sortiert.
Die Liste vorzugsweise speichern auf dem Desktop.
Würde mich über Hilfe sehr freuen.
LG
Tom
nach mehreren Versuchen mit unbefriedigendem Ergebnis wende ich mich mal an euch.
Schaffe es nicht eine vernünftige txt von meinen Ordnerinhalten zu erstellen.
Folgende Ausgangslage:
Ein Netzlaufwerk Z mit folgender Ordnerstruktur:
Ein Hauptordner,
darin befinden sich weitere Ordner von
zBsp A-Z und darin jeweils eine weitere Ordnerebene mit Dateien.
Von dieser letzten Ordnerebene benötige ich eine Liste mit nur den Namen aller Ordner alphabetisch sortiert.
Die Liste vorzugsweise speichern auf dem Desktop.
Würde mich über Hilfe sehr freuen.
LG
Tom
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6546176037
Url: https://administrator.de/forum/hilfe-bei-batch-fuer-ordnerlisten-6546176037.html
Ausgedruckt am: 03.04.2025 um 17:04 Uhr
21 Kommentare
Neuester Kommentar
Zitat von @TomCig:
hier bekomme ich zwar eine outputdatei. Das ist aber nur eine Miniliste mit Namen die ich nicht benötige, also z.Bsp Dateinamen o.ä....benötige aber die Ordnernamen.
Dateinamen können da nicht rauskommen, keiner der Befehle listet Dateien auf sondern nur Ordner. Der Fehler muss bei dir liegen, bei mir klappt das Ganze im Test einwandfrei.hier bekomme ich zwar eine outputdatei. Das ist aber nur eine Miniliste mit Namen die ich nicht benötige, also z.Bsp Dateinamen o.ä....benötige aber die Ordnernamen.
Gruß Thomas
Zitat von @TomCig:
Hier kommt dann u.a folgendes in der Ausgabedatei:
2004
2005
2006
2007
2008
2009
2010
...
Es gibt aber keine Ordner mit diesen Bezeichnungen.
irgendwo müssen die ja herkommen.Hier kommt dann u.a folgendes in der Ausgabedatei:
2004
2005
2006
2007
2008
2009
2010
...
Es gibt aber keine Ordner mit diesen Bezeichnungen.
Mach mal folgendes:
@echo off
set "MAIN=D:\Hauptordner"
set "OUT=%UserProfile%\Desktop\output.lst"
>"%OUT%" (for /d %%A in ("%MAIN%\*") do for /d %%B in ("%%A\*") do for /d %%C in ("%%B\*") do echo %%C)
Moin,
Gut, dann so:
Gruß Thomas
Ok Thomas,
wir sind eine Ebene zu tief.
wir sind eine Ebene zu tief.
Habe diese Ordnerstruktur :
In der Ausgabeliste sollte jetzt stehen:
Ordner\Ordner1
\A\Ordner Ha
\Ordner He
\Ordner Hi
\B\Ordner Ho
\Ordner Hu
\Ordner Da
\C\Ordner Di
\Ordner Du
\Ordner Do
In der Ausgabeliste sollte jetzt stehen:
Ha
He
Hi
Ho
Hu
Da
Di
Du
Do
Gut, dann so:
@echo off
set "MAIN=D:\Hauptordner"
set "OUT=%UserProfile%\Desktop\output.lst"
>"%OUT%~tmp" (for /d %%A in ("%MAIN%\*") do for /f "Tokens=2" %%B in ('dir /b /ad "%%A"') do echo %%B)
>"%OUT%" sort "%OUT%~tmp"
del "%OUT%~tmp"
Gruß Thomas
Ich habe gerade keine Möglichkeit das leider zu testen aber mit sowas sollte es gehen.
Tut mir leid für die störrische Antwort, ich bin gerade unterwegs, ich hoffe damit lässt sich was anfangen.
Gruß
Foreach(Get-ChildItem -Directory -FullName <pfad>){ Get-ChildItem -Directory | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) }}
Tut mir leid für die störrische Antwort, ich bin gerade unterwegs, ich hoffe damit lässt sich was anfangen.
Gruß
Genau das wolltest du doch...
sonst halt Zeile 6 ersetzen durch
dann wird wieder der komplette name gelistet.
Gruß Thomas
Habe diese Ordnerstruktur :
\A\Ordner Ha
...
In der Ausgabeliste sollte jetzt stehen:
Ha
Also: Aus dem Namen "Ordner Ha" soll nur noch das "Ha" angezeigt werden (also das zweite Wort).\A\Ordner Ha
...
In der Ausgabeliste sollte jetzt stehen:
Ha
sonst halt Zeile 6 ersetzen durch
>"%OUT%~tmp" (for /d %%A in ("%MAIN%\*") do dir /b /ad "%%A")
Zitat von @DarkZoneSD:
Gibt es eig. Einen Grund dafür das es in Batch sein muss? ist Powershell keine Möglichkeit?
Gibt es eig. Einen Grund dafür das es in Batch sein muss? ist Powershell keine Möglichkeit?
$Hauptordner = "D:\Hauptordner"
$Output = "$ENV:UserProfile\Desktop\Output.lst"
(Get-ChildItem -Directory "$Hauptordner\*\*").Name | sort | Set-Content $Output
Gruß Thomas

@echo off
powershell -EP Bypass -C "(Get-ChildItem 'Z:\HauptOrdner\*\*' -Directory | sort Name).Name | set-content -Path $home\Desktop\namen.txt"
Cheers briggs