Supportnet / Forum / Anwendungen(Java,C++...)
Batch Anzahl Ordner ermitteln XP
Frage
Hallo,
ich habe eine Batch die verschiedene Ordner anlegt.
Z.B.: C:\HDD1 0,1 %date%
Dies ist für ein Backup welches alle 3 Tage ausgeführt wird.
Ich möchte nun ne Batch schreiben, die überprüft, ob z.B.
10 Ordner schon da sind. Wenn das stimmt sollte es mir ne Warnmeldung ausgeben. Das wäre sehr hilfreich!
Ich weiss, is ne komische Frage, aber das würde mir sehr helfen.
Hab schon gegoogelt, aber nicht das passende gefunden.
Danke schon mal für eure Hilfe!
Antwort 1 von EstronDekal
Hallo,
Ich hab mal ein paar Dateien zusammengestellt:
Finde-Anzahl.bat------------
-----------------------------------
Vorlage.dat-------------------
-----------------------------------
Erst wird die Vorlage.dat nach Temp kopiert, und dabei in Ausfuehren.bat umbenannt. Dann sollten mit
Hauptbatch.bat------------------
----------------------------------------
Ich hab allerdings nur den dir/find-Befehl auf der Kommandozeile eben getestet, den Rest kannst du ja noch mal durchsehen und eventuell korrigieren. Das Prinzip klappt aber (zumindest auf COMMAND.COM), ich habe schon ähnliche Dateien geschrieben.
Natürlich können die Pfade variieren.
MfG...
PS: Sollte sogar unter purem DOS und/oder mit COMMAND.COM (statt CMD.EXE) tun.
Ich hab mal ein paar Dateien zusammengestellt:
Finde-Anzahl.bat------------
@echo off
C:
CD\
del %TEMP%\Ausfuehren.bat
copy C.\VORLAGE\Vorlage.dat %TEMP%\Ausfuehren.bat
dir /ad | find "HDD" /C >> %TEMP%\Ausfuehren.bat
Call %TEMP%\Ausfuehren.bat
del %TEMP%\Ausfuehren.bat
C:\Hauptbatch.bat WEITER-----------------------------------
Vorlage.dat-------------------
@echo off
set Anzahl=-----------------------------------
Erst wird die Vorlage.dat nach Temp kopiert, und dabei in Ausfuehren.bat umbenannt. Dann sollten mit
dir /ad | find "HDD" /C alle Ordner im momentanen Verzeichnis aufgezählt werden, welche "HDD" im Namen haben (hier musst du ein gutes Schlüsselwort finden) und die Anzahl ausgegeben. Die Anzahl wird dann ans Ende der Ausfuehren.bat angehängt, welche aufgerufen wird, um die Variable zu setzen. Danach wird die Ausfuehren.bat gelöscht und die Hauptbatch.bat wieder aufgerufen, aber mit dem Parameter WEITER. Hauptbatch sieht etwa so aus:Hauptbatch.bat------------------
@echo off
BREAK ON
IF "%1Param"=="WEITERParam" GOTO WEITER
C:\Finde-Anzahl.bat
:WEITER
IF "%Anzahl%Var"=="1Var" GOTO OK
IF "%Anzahl%Var"=="2Var" GOTO OK
..
IF "%Anzahl%Var"=="10Var" GOTO OK
GOTO NICHT-OK
:OK
~~~Deine Aktionen~~~
:NICHT-OK
~~~Deine Aktionen~~~----------------------------------------
Ich hab allerdings nur den dir/find-Befehl auf der Kommandozeile eben getestet, den Rest kannst du ja noch mal durchsehen und eventuell korrigieren. Das Prinzip klappt aber (zumindest auf COMMAND.COM), ich habe schon ähnliche Dateien geschrieben.
Natürlich können die Pfade variieren.
MfG...
PS: Sollte sogar unter purem DOS und/oder mit COMMAND.COM (statt CMD.EXE) tun.

