Dateien in mehreren Ordnern zählen (verschiedene Pfade). Gesamtmenge? CMD

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
@echo off
Setlocal EnableDelayedExpansion
set Counter=0
FOR /F "delims=" %%A IN ('dir /A /B /S "Pfad 1\*"') DO set /a Counter+=1
FOR /F "delims=" %%A IN ('dir /A /B /S "Pfad 2\*"') DO set /a Counter+=1
FOR /F "delims=" %%A IN ('dir /A /B /S "Pfad 3\*"') DO set /a Counter+=1
[...]
echo !Counter!
pause
exit

Imperium99 
Fragesteller
 21.06.2014, 20:47

Vielen Dank :) Jetzt habe ich nur 2 Fragen: 1. Was bewirkt "Setlocal EnableDelayedExpansion? 2. Wieso "do set /a Counter+=1? Wäre nicht "do set /a Counter=Counter+1" logischer?

0
S1r1us13  21.06.2014, 21:54
@Imperium99

"Setlocal EnableDelayedExpansion" ermöglicht das Verändern von Variablen in Schleifen von einzelnen Befehlen (wie dem FOR-Befehl) und Klammern. In Klammern oder solchen Schleifen veränderte Variablen kann man mit !VARIABLE! aufrufen.

Damit hat man außerdem die Möglichkeit, eine Variable in dem Namen einer anderen zu verwenden, z.B. "!Var%Variable2%1!".

"set /a Counter+=1" rechnet zu der Variable "Counter" +1 hinzu. Man kann natürlich auch "Set /a Counter=!Counter! + 1" benutzen, aber man kann die paar Bytes sparen ;-)

0

Ordner makieren, Rechtsklick, Eigenschaften


Imperium99 
Fragesteller
 20.06.2014, 15:17

Und was hat CMD jetzt dafür gemacht? Es soll ja "automatisch" gehen!

0

Also mit der CMD hast du dir ein Teil rausgesucht welches sau dumm ist und nix kann. Wieso versucht du es nicht mit Javascript oder so ?


Imperium99 
Fragesteller
 20.06.2014, 15:16

Weil ich es lieber mit CMD machen möchte, Batch lerne ich momentan :)

0