txt mit Pfaden auslesen, Unterordner erkennen und in .txt sichern
Hallo liebe User, liebes Team,
ich habe hier eine .txt Datei mit folgenden Aufbau:
~~~
C:\Fotos2006
F:\Fotos2007 Januar
~~~
Primäre Aufgabe / Ziel:
Ich benötige eine .bat die diese .txt ausliest und mir von den darin enthaltenen Pfaden ausgehend, alle Unterordner erkennt und mir eine komplette Liste in .txt speichert.
In diesem Fall würde das Ergebnis so aussehen:
C:\Fotos2006
C:\Fotos2006\Januar
C:\Fotos2006\Februar
F:\Fotos2007 Januar
F:\Fotos2007 Januar\Hildesheim
F:\Fotos2007 Januar\Hannover
Liebe Grüße Soidberg
ich habe hier eine .txt Datei mit folgenden Aufbau:
~~~
C:\Fotos2006
F:\Fotos2007 Januar
~~~
Primäre Aufgabe / Ziel:
Ich benötige eine .bat die diese .txt ausliest und mir von den darin enthaltenen Pfaden ausgehend, alle Unterordner erkennt und mir eine komplette Liste in .txt speichert.
In diesem Fall würde das Ergebnis so aussehen:
C:\Fotos2006
C:\Fotos2006\Januar
C:\Fotos2006\Februar
F:\Fotos2007 Januar
F:\Fotos2007 Januar\Hildesheim
F:\Fotos2007 Januar\Hannover
Liebe Grüße Soidberg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58350
Url: https://administrator.de/contentid/58350
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Soidberg!
Sollte etwa so gehen:
Grüße
bastla
Sollte etwa so gehen:
@echo off & setlocal
set "Quelldatei=D:\Ordnerliste.txt"
set "Zieldatei=D:\AlleOrdner.txt"
if exist "%Zieldatei%" del "%Zieldatei%"
for /f "usebackq delims=" %%i in ("%Quelldatei%") do call :ProcessFolder "%%i"
goto :eof
:ProcessFolder
echo %~1>>"%Zieldatei%"
dir /b /s /ad %1>>"%Zieldatei%"
echo.>>"%Zieldatei%"
Grüße
bastla
Hallo Soidberg!
Zum Abschneiden des Kommas sowie des darauf folgenden Teiles der Zeile musst Du nur in der "for"-Zeile "delims=," schreiben (ohne die Ordnerliste zu verändern). Voraussetzung ist, dass der Pfad selbst kein Komma enthält, da eben inklusive des ersten gefundenen Kommas der Rest der Zeile ignoriert wird.
Zur Optik: Ich weiß nicht wirklich, was Du unter einem "Absatz" verstehst - derzeit wird bereits mit "echo." (letzte Zeile) nach jedem Block eine Leerzeile erzeugt. Mit weiteren/anderen "echo"-Befehlen (natürlich jeweils mit >>"%Zieldatei%", um in die Ausgabedatei zu schreiben) kannst Du die Trennung zwischen den Blöcken selbst gestalten.
Grüße
bastla
Zum Abschneiden des Kommas sowie des darauf folgenden Teiles der Zeile musst Du nur in der "for"-Zeile "delims=," schreiben (ohne die Ordnerliste zu verändern). Voraussetzung ist, dass der Pfad selbst kein Komma enthält, da eben inklusive des ersten gefundenen Kommas der Rest der Zeile ignoriert wird.
Zur Optik: Ich weiß nicht wirklich, was Du unter einem "Absatz" verstehst - derzeit wird bereits mit "echo." (letzte Zeile) nach jedem Block eine Leerzeile erzeugt. Mit weiteren/anderen "echo"-Befehlen (natürlich jeweils mit >>"%Zieldatei%", um in die Ausgabedatei zu schreiben) kannst Du die Trennung zwischen den Blöcken selbst gestalten.
Grüße
bastla