Verzeichnisinhalt ausgeben per Batch (2 dir- Abfragen)
Hallo zusammen,
ich habe ein Problem bei einer Batchabfrage, unzwar möchte ich mit dem Befehl
dir | find /i "07.2005"
alle Dateien eines Ordners auflisten die im Juli 2005 erstellt wurden,
soweit sogut nun möchte ich diese herausgefilterten Dateien am besten mit dem befehl dir /b also quasi ohne datum in einem log Datei schreiben (z.b. >juli.log).
Doch ich weiss nicht wie ich die zuvor mit dem dir Befehl sortierten Dateien, jetzt mit dem dir /b Befehl in eine Datei ausgeben kann?
Bei dem Befehl:
dir / B | find /i "07.2005" >juli.log
werden nicht nur die Dateien vom Juli aufgelistet!
Wcihtig ist halt, das alle im Juli erstellten Dateien in dieser Logdatei nur mit dem Namen auftauchen.
Ich habe keine Ahnung wie ich das lösen könnte, habe bereits die Suchfunktion "gequält", aber nichts passendes gefunden.
Kann mir wer helfen.
MfG Heiner
ich habe ein Problem bei einer Batchabfrage, unzwar möchte ich mit dem Befehl
dir | find /i "07.2005"
alle Dateien eines Ordners auflisten die im Juli 2005 erstellt wurden,
soweit sogut nun möchte ich diese herausgefilterten Dateien am besten mit dem befehl dir /b also quasi ohne datum in einem log Datei schreiben (z.b. >juli.log).
Doch ich weiss nicht wie ich die zuvor mit dem dir Befehl sortierten Dateien, jetzt mit dem dir /b Befehl in eine Datei ausgeben kann?
Bei dem Befehl:
dir / B | find /i "07.2005" >juli.log
werden nicht nur die Dateien vom Juli aufgelistet!
Wcihtig ist halt, das alle im Juli erstellten Dateien in dieser Logdatei nur mit dem Namen auftauchen.
Ich habe keine Ahnung wie ich das lösen könnte, habe bereits die Suchfunktion "gequält", aber nichts passendes gefunden.
Kann mir wer helfen.
MfG Heiner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 14119
Url: https://administrator.de/forum/verzeichnisinhalt-ausgeben-per-batch-2-dir-abfragen-14119.html
Ausgedruckt am: 17.04.2025 um 15:04 Uhr
3 Kommentare
Neuester Kommentar
Moin, Heiner,
das Gerüst wäre:
... vom CMD-Prompt aus,
aber wenn Du Dir das ohnehin nicht jedesmal von einem Zettel abtippen willst, dann mach das in einem Mini-Batch etwas flexibler:
:: [edit] Um die Ecke gedacht... die alte Variante ist sooo umständlich nicht nötig
::for /F "tokens=4" %%a in ('dir ^|find /V "<DIR>"^|find "%Monat%.%jahr%"') do echo %%a >>%jahr%-%monat%.log
::[/edit]
ende LogMirWatt.bat
Die Logdateien heißen dann "2005-07.log" etc, aber damit kannst Du bestimmt leben.
Habe jetzt Schnickschnack wie alphabetische Sortierung, Unterverzeichnisse abfackeln und Logdatei löschen weggelassen, nimm es als Skizze.
Wenn Du alle Dateien eines Laufwerks aus dem (z.B.) Juli auflisten willst, würde ich aber den XCopy-Befehl missbrauchen.
Frank /der Biber aus Bremen
das Gerüst wäre:
for /F "tokens=4" %a in ('dir ^|find /V "<DIR>"^|find "07.2005"') do echo %a >>Juli2005.log
aber wenn Du Dir das ohnehin nicht jedesmal von einem Zettel abtippen willst, dann mach das in einem Mini-Batch etwas flexibler:
::----LogMirWatt.bat
@echo off
set /P monat="Welches Monat (als 01 bis 12 eingeben)? "
set /p jahr="Welches Jahr (YYYY) ? "
for /F "tokens=4" %%a in ('dir /A-D ^|find "%Monat%.%jahr%"') do echo %%a >>%jahr%-%monat%.log
::for /F "tokens=4" %%a in ('dir ^|find /V "<DIR>"^|find "%Monat%.%jahr%"') do echo %%a >>%jahr%-%monat%.log
::[/edit]
ende LogMirWatt.bat
Die Logdateien heißen dann "2005-07.log" etc, aber damit kannst Du bestimmt leben.
Habe jetzt Schnickschnack wie alphabetische Sortierung, Unterverzeichnisse abfackeln und Logdatei löschen weggelassen, nimm es als Skizze.
Wenn Du alle Dateien eines Laufwerks aus dem (z.B.) Juli auflisten willst, würde ich aber den XCopy-Befehl missbrauchen.
Frank /der Biber aus Bremen
Moin efde,
dein "DIR"-Aufruf bringt eine andere Spalten-Reihenfolge, vermute ich.
Dann musst Du wahrscheinlich an dem FOR-Parameter "Tokens=n" rumspielen.
Bei mir sieht die entsprechende 2005-08.log so aus:
D:\temp>type 2005-08.log
2pbat.bat
Logmirwatt.bat
Works as designed.
Biber
[edit]
Dann teste doch erst mal die schmucklose Rohfassung vom CMD-Prompt aus
bis Du weißt, welche Spalte die für Dich brauchbare ist.
[/edit]
dein "DIR"-Aufruf bringt eine andere Spalten-Reihenfolge, vermute ich.
Dann musst Du wahrscheinlich an dem FOR-Parameter "Tokens=n" rumspielen.
Bei mir sieht die entsprechende 2005-08.log so aus:
D:\temp>type 2005-08.log
2pbat.bat
Logmirwatt.bat
Works as designed.
Biber
[edit]
Dann teste doch erst mal die schmucklose Rohfassung vom CMD-Prompt aus
for /F "tokens=3-5" %a in ('dir ') do echo %a %b %c
[/edit]