# Problem mit Schleife in Batch Datei



## coolduke (8. Juli 2004)

Hi,

hier kurz ein Code und dann die beschreibung:

SET ZA=1
IF "%1"=="" GOTO startall
:loop1
IF "%1" NEQ "" GOTO start1 
rem echo za %ZA%
rem ECHO par %1
:START1
SET VAR1=%1
xcopy \\sde\c\arcforest\process\*.* \\%var1%\c\arcforest\process\ /e/Y/r
comp \\sde\c\arcforest \\%var1%\c\arcforest
SET /A ZA=%ZA%+1
shift
GOTO loop1

Wenn ich die batch ausführe und dahinter nichts eingebe, dann wird die Batch gestartet (STARTALL). Wenn ich aber dahinter Rechnernamen eingebe, dann führt er ja "START1" aus. Wie krieg ich das jetzt hin, das wenn ich z.B 2 rechnernamen eintippe, die Batch 2mal durchlaufen wird und dann beendet wird? Also GOTO EOF (End Of File)

MfG Matthias


----------



## Retlaw (8. Juli 2004)

Der Einfachkeit halber hab ich die Befehle durch ein echo ersetzt.
Die Datei heißt test.bat
Aufrufbeispiele:
test computername1
test computername1 computername2 computernameN
test

```
@echo off

rem wenn nichts eingegeben wurde gehen zu "startAll"
if "%1%"=="" goto startAll

:loop
if "%1%"=="" goto eof

rem ansonsten führe befehl mit übergebenem namen aus
echo %1%

shift
goto loop

rem ruft sich selber mit allen computernamen auf
:startAll
test.bat computer1 computer2 computer3

:eof
```
Werden ein oder mehrere Parameter eingegeben werden diese in einer Schleife abgearbeitet. Wird kein Parameter übergeben ruft sich die Datei selbst auf und übergibt sich dabei alle Namen (müssen natürlich eingetragen werden).


----------

