Nun, das ist nicht allzu schwierig. Es gibt eine Reihe von bekannten Batch-Tricks, wie falsch mit ping schlafen (die Sie davor bewahrt, ein Nicht-Standard-Tool zu integrieren) und wir können dann kommen mit dem folgenden:
@echo off
setlocal
set n=0
:start
ren test.g test.go
ping localhost -n 26>nul 2>&1
ren test.go test.g
set /a n+=25
if %n% LSS 300 goto start
endlocal
setlocal
und endlocal
stellen sicher, dass alle Umgebungsvariablen, die wir erstellen und ändern, nur im Bereich der Batchdatei selbst verbleiben. Der Befehl
ping localhost -n 26 >nul 2>&1
wird 25 Sekunden warten (da der erste Ping sofortiger sein wird und jede nachfolgende eine verursacht eine Verzögerung von einer Sekunde), während all normale und Fehlerausgabe Wegwerfen (>nul 2>&1
).
Schließlich verfolgen wir, wie lange wir bisher in der %n%
Variable gewartet haben und nur wenn n immer noch unter 300 ist, machen wir weiter Schleifen. Man könnte es auch tun mit einem for-Schleife, aber:
@echo off
setlocal
set n=300
set /a k=n/25
for /l %%i in (1,1,%k%) do (
ren test.g test.go
ping localhost -n 26>nul 2>&1
ren test.go test.g
)
endlocal
die oft zunächst berechnen, wie es in einer Schleife brauchen würde, und dann nur die berechnete Anzahl von Malen durchlaufen.