ripued2
Goto Top

Zwei Variablen (inkl Counter) sollen Wert bestehender Variable anzeigen

Hallo, ich stehe vor einem Problem und ich bin mir nicht sicher, ob das so leicht zu lösen ist.
Für ein Projekt habe ich verschiedene Postfächer, von denen jedes einen eigenen Ordner hat und jede diverse PDF-Dateien zum verschicken hat.

Nun würde ich gerne als erstes alle PDF-Dateien in den Ordnern zählen. Dafür habe ich jeden Ordner eine Variable verpasst (c1, c2, c3...). In einer for-Schleife sollen für all diese Ordner die Dateien gezählt werden.
Da ich zuvor überprüfe, ob in jedem Ordner (welche die oben genenannten c-Variablen haben) etwas drinnen ist, lasse ich kurz auf Inhalt übprüfen mit einem Counter, welcher C und dem einem hochzählenden Wert. Leider kann ich nicht einfach alle Unterordner durchzählen lassen, weil es hier einige Ordner gibt, welche unberührt bleiben müssen. Hier mal der ganze Code soweit:

REM @echo off
setlocal EnableDelayedExpansion
C:
cd C:\Scannen\Eingang
cls
set c1=Verwaltung
set c2=Avisen
set c3=Rechnungen
set c4=Stornos
REM sind noch viel mehr Postfaecher
set cntpdf=0
set cnt=1
goto start
:count
set /a cnt=%cnt%+1
:start
for %%a in (%c%cnt%%\*.pdf) do (set /a cntpdf=!cntpdf!+1)
if not %cnt% equ 4 goto count
echo. Anzahl der PDF-Dateien: %cntpdf%
pause>NUL

Folgendermaßen war es gedacht, wie es laufen sollte: Für jeden Ordner, welche alle unter C:\Scannen\Eingang liegen und von denen jeder eine Variable (c1, c2...) bekommen hat, sollte in der for-Schleife der Inhalt gezählt wird. Mit der Variable cnt wollte ich einen Zähler haben, welchen ich an den Buchstaben c hängen kann und damit sollten die 4 eröffneten Variablen bzw. die Ordner auf Inhalt überprüft werden. Außerdem dient der Counter noch für die eigentliche Zählung.

Irre ich mich oder habe ich das grundlegende Problem, dass ich aus zwei Werten etwas abfragen möchte, was wiederrum eine gesetzte Variable ist? Also in meinem Fall: Buchstaben C + Counter (Beispiel C2) und diese Zusammensetzung soll auf den Inhalt einer bereits gesetzten Variable zeigen, im Beispiel oben wollte ich den Ordner "Avisen" für die for-schleife haben.

Bin ich hier tatsächlich auf einem ziemlich falschen Weg? Hätte jemand eine alternative Lösung bzw. einen Vorschlag für mich?

Content-ID: 1830821234

Url: https://administrator.de/forum/zwei-variablen-inkl-counter-sollen-wert-bestehender-variable-anzeigen-1830821234.html

Ausgedruckt am: 15.04.2025 um 19:04 Uhr

rubberman
Lösung rubberman 04.02.2022 um 20:08:50 Uhr
Goto Top
Mache dich mit Schleifen vertraut.
Ungetestet:
@echo off &setlocal EnableDelayedExpansion
cd /d "C:\Scannen\Eingang"  

set "c1=Verwaltung"  
set "c2=Avisen"  
set "c3=Rechnungen"  
set "c4=Stornos"  

for /l %%i in (1 1 4) do (
  for /f %%j in ('dir /a-d /b "!c%%i!\*.pdf" ^| find /c /v ""') do echo Anzahl der PDF-Dateien in "!c%%i!": %%j  
)

pause
Steffen