Anfrage Ordner Auflistungs Skript
Hallo zusammen,
ich habe ein Skript was einen Ordner durchsucht und alle Ordner samt Unterordner mit der jeweiligen Anzahl der Dateien auflistet.
Output ist also eine TXT die so ausschaut:
0001107096 35 Dateien
0001107412 25 Dateien
0001115080 35 Dateien
Jetzt hätte ich gerne, dass er neben jedem Ordnernamen noch das Erstelldatum listet.
z.b.
Ordnername 35 Dateien 14.12.2019
Kann jemand das Skript unten entsprechend anpassen?
@echo off &setlocal
set "root=PfadZumOrdnerDasAufgelistetWerdenSoll"
set "folder=%root%\%%~a"
set /a n=0
setlocal enabledelayedexpansion
for /f "delims=" %%b in ('dir /a-d /b "!folder!" 2^>nul') do (
set /a n+=1
)
set "folder=%%~a "
>>test.txt echo !folder:~,40! !n! Dateien
endlocal
)
ich habe ein Skript was einen Ordner durchsucht und alle Ordner samt Unterordner mit der jeweiligen Anzahl der Dateien auflistet.
Output ist also eine TXT die so ausschaut:
0001107096 35 Dateien
0001107412 25 Dateien
0001115080 35 Dateien
Jetzt hätte ich gerne, dass er neben jedem Ordnernamen noch das Erstelldatum listet.
z.b.
Ordnername 35 Dateien 14.12.2019
Kann jemand das Skript unten entsprechend anpassen?
@echo off &setlocal
set "root=PfadZumOrdnerDasAufgelistetWerdenSoll"
test.txt type nul
for /f "delims=" %%a in ('dir /ad /b "%root%" 2^>nul') do (set "folder=%root%\%%~a"
set /a n=0
setlocal enabledelayedexpansion
for /f "delims=" %%b in ('dir /a-d /b "!folder!" 2^>nul') do (
set /a n+=1
)
set "folder=%%~a "
>>test.txt echo !folder:~,40! !n! Dateien
endlocal
)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 523670
Url: https://administrator.de/contentid/523670
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
6 Kommentare
Neuester Kommentar
Bitte Code immer im Codeblock posten.
setlocal EnableDelayedExpansion muss übrigens nur einmalig für das gesamte Script aktiviert werden.
Falls Änderungsdatum in Ordnung ist:
Das wirkliche Erstelldatum kann bei CMD zwar theoretisch mittels wmic abgerufen werden, da dies in der Praxis jedoch insbesondere bei mehreren Ordnern recht lange dauert, würde ich hier stattdessen eher einen Powershell-Befehl einfügen, der direkt alles übernimmt:
Zitat von @Lupora:
Jetzt hätte ich gerne, dass er neben jedem Ordnernamen noch das Erstelldatum listet.
Muss es wirklich das Erstelldatum sein, oder reicht auch das Änderungsdatum?Jetzt hätte ich gerne, dass er neben jedem Ordnernamen noch das Erstelldatum listet.
setlocal EnableDelayedExpansion muss übrigens nur einmalig für das gesamte Script aktiviert werden.
Falls Änderungsdatum in Ordnung ist:
@echo off
setlocal enabledelayedexpansion
set "root=PfadZumOrdnerDasAufgelistetWerdenSoll"
>test.txt type nul
cd /d "%root%"
for /f "delims=" %%a in ('dir /ad /b 2^>nul') do (
set "folder=%%~a"
set datum=%%~ta
echo !datum:~0,10!
set n=0
for /f "delims=" %%b in ('dir /a-d /b "!folder!" 2^>nul') do (
set /a n+=1
)
set "folder=%%~a "
>>"%~dp0\test.txt" echo !folder:~,40! !n! Dateien !datum:~0,10!
)
Das wirkliche Erstelldatum kann bei CMD zwar theoretisch mittels wmic abgerufen werden, da dies in der Praxis jedoch insbesondere bei mehreren Ordnern recht lange dauert, würde ich hier stattdessen eher einen Powershell-Befehl einfügen, der direkt alles übernimmt:
@echo off
set "root=PfadZumOrdnerDasAufgelistetWerdenSoll"
powershell ls -dir '%root%' ^| %% { $_.name+' '+(ls -file $_.FullName).length+' Dateien '+$_.CreationTime.ToString('dd.MM.yyyy') } ^| Out-File -Encoding Default test.txt
Zitat von @Lupora:
Ok, noch ein seltsames Verhalten: Bei manchen Ordnern scheint er falsch zu zählen.
Anbei ein Bild. Im Schnitt sind in den Ordnern zwischen 20-40 Dateien. Manchmal zählt er aber plötzlich riesige Dateimengen (z.B. 19342).
Wenn ich den Ordner öffne ist meist nur eine Datei drin.
Kannst sich das jemand erklären?
Jo, mein Fehler. Mit length zeigt er die Dateigröße an, wenn nur ein Element vorhanden ist. Hier muss natürlich stattdessen count hin.Ok, noch ein seltsames Verhalten: Bei manchen Ordnern scheint er falsch zu zählen.
Anbei ein Bild. Im Schnitt sind in den Ordnern zwischen 20-40 Dateien. Manchmal zählt er aber plötzlich riesige Dateimengen (z.B. 19342).
Wenn ich den Ordner öffne ist meist nur eine Datei drin.
Kannst sich das jemand erklären?
Zitat von @Lupora:
Und noch kleiner Nachtrag. geht zusätzlich zum Datum auch die Uhrzeit des Erstelldatums?
Klar geht das. Und sag doch gleich, dass du das Ganze als Excelliste ausgegeben haben willst Und noch kleiner Nachtrag. geht zusätzlich zum Datum auch die Uhrzeit des Erstelldatums?
@echo off
set "root=PfadZumOrdnerDasAufgelistetWerdenSoll"
powershell ls -dir '%root%' ^| %% { $_^|Add-Member NoteProperty 'Anzahl Dateien' (ls -r -file $_.FullName).count;$_ } ^| select Name,'Anzahl Dateien',Creationtime ^| Export-Csv -e default -d ';' -nti test.csv