Batch-Datei um Dateien zu zählen und abzugleichen
Hy Leute,
ich erstelle gerade einen Prozess, womit bestimmte Produkte beschafft werden sollen.
Sofern ein Kundenbetreuer eine Bestellung auslöst, erscheint diese in einem bestimmten Ordner.
Die Bestellungen werden via VBA eingelesen und weiterverarbeitet.
Mein Problem:
Die Bestellungen sind nach Jahren sortiert. Wenn ich meine Ordner auf neue Dateien prüfen möchte, dann muss mal für 5 Jahre durchmachen und das fast stündlich.
Mein Vorschlag:
Eine Batch-Datei, welche alle .xls Dateien in einem bestimmten Ordner zählt.
Wenn Dateien vorhanden, dann bitte den Ordner inkl. Anzahl nennen.
Problem:
Ich weiß nicht, was ich schreiben muss.
Hier mein Daten-Stammbaum:
L:\Vertrieb\Absatz\Bestellungen 2011
...
Bestellungen 2015
In diesen Ordnern gibt es nochmal einen Unterordner "Archiv", welcher nicht mit geprüft werden sollen, da dort die bereits abgearbeiteten Meldungen stehen.
Kann mir jemand helfen?!
vielen Dank
Bemme1990
ich erstelle gerade einen Prozess, womit bestimmte Produkte beschafft werden sollen.
Sofern ein Kundenbetreuer eine Bestellung auslöst, erscheint diese in einem bestimmten Ordner.
Die Bestellungen werden via VBA eingelesen und weiterverarbeitet.
Mein Problem:
Die Bestellungen sind nach Jahren sortiert. Wenn ich meine Ordner auf neue Dateien prüfen möchte, dann muss mal für 5 Jahre durchmachen und das fast stündlich.
Mein Vorschlag:
Eine Batch-Datei, welche alle .xls Dateien in einem bestimmten Ordner zählt.
Wenn Dateien vorhanden, dann bitte den Ordner inkl. Anzahl nennen.
Problem:
Ich weiß nicht, was ich schreiben muss.
Hier mein Daten-Stammbaum:
L:\Vertrieb\Absatz\Bestellungen 2011
...
Bestellungen 2015
In diesen Ordnern gibt es nochmal einen Unterordner "Archiv", welcher nicht mit geprüft werden sollen, da dort die bereits abgearbeiteten Meldungen stehen.
Kann mir jemand helfen?!
vielen Dank
Bemme1990
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176595
Url: https://administrator.de/forum/batch-datei-um-dateien-zu-zaehlen-und-abzugleichen-176595.html
Ausgedruckt am: 12.04.2025 um 05:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo Bemme1990 und willkommen im Forum!
So ganz klar ist mir zunächst die Anforderung nicht (Geht es tatsächlich nur darum, die Anzahl an Excel-Dateien in einem bestimmten Ordner zu ermitteln, oder sollen - vermutlich - doch mehrere Ordner untersucht werden?) und auch nicht, weshalb Batch und nicht VBA dazu verwendet werden soll ...
Außerdem: Sollten neue Dateien nicht am Erstellungs- / Änderungsdatum zu erkennen sein - weshalb dann die Anzahl der "xls"-Dateien?
Und schließlich: Wie soll das Ergebnis konkret aussehen (Textdatei, Excel, Bildschirmausgabe)?
Für letztere würde ein Beispiel zur Direkteingabe in CMD etwa so aussehen:
Grüße
bastla
So ganz klar ist mir zunächst die Anforderung nicht (Geht es tatsächlich nur darum, die Anzahl an Excel-Dateien in einem bestimmten Ordner zu ermitteln, oder sollen - vermutlich - doch mehrere Ordner untersucht werden?) und auch nicht, weshalb Batch und nicht VBA dazu verwendet werden soll ...
Außerdem: Sollten neue Dateien nicht am Erstellungs- / Änderungsdatum zu erkennen sein - weshalb dann die Anzahl der "xls"-Dateien?
Und schließlich: Wie soll das Ergebnis konkret aussehen (Textdatei, Excel, Bildschirmausgabe)?
Für letztere würde ein Beispiel zur Direkteingabe in CMD etwa so aussehen:
for /d %i in ("L:\Vertrieb\Absatz\Bestellungen 201*") do @for /f %a in ('dir "%i\*.xls" 2^>nul^|findstrDatei(en)"') do @echo %a Dateien in %i
bastla
Hallo Bemme1990!
Als Batch und mit der gewünschten Ausgabeformatierung etwa so:
In dieser Fassung würden alle "Jahresordner" ab 2010 geprüft - wenn es tatsächlich nur 2011 bis 2015 sein sollen, dann zB
Grüße
bastla
Als Batch und mit der gewünschten Ausgabeformatierung etwa so:
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
@echo off & setlocal enabledelayedexpansion
for /d %%i in ("L:\Vertrieb\Absatz\Bestellungen 201*") do (
set "Anzahl=0"
for /f %%a in ('dir "%%i\*.xls" 2^>nul^|findstr "Datei(en)"') do set "Anzahl=%%a"
echo %%~nxi = !Anzahl!
)
echo(
pause
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
@echo off & setlocal enabledelayedexpansion
set "Basis=L:\Vertrieb\Absatz"
for /L %%i in (2011,1,2015) do (
set "Ordner=Bestellungen %%i"
set "Anzahl=0"
for /f %%a in ('dir "%Basis%\!Ordner!\*.xls" 2^>nul^|findstr "Datei(en)"') do set "Anzahl=%%a"
echo !Ordner! = !Anzahl!
)
echo(
pause
bastla
Hallo Bemme1990!
Sollte für ein gemaptes Laufwerk (oder einen UNC-Pfad) genauso funktionieren ...
Du könntest direkt in der CMD-Shell einmal probeweise
eingeben (vorzugsweise, wenn es auch gerade eine Datei im entsprechenden Ordner gibt) und das Ergebnis interpretieren / posten ...
Grüße
bastla
Sollte für ein gemaptes Laufwerk (oder einen UNC-Pfad) genauso funktionieren ...
Du könntest direkt in der CMD-Shell einmal probeweise
dir "L:\Vertrieb\Absatz\Bestellungen 2011\*.xls"
Grüße
bastla