De afgelopen weken heb ik enorme last van een slechte verbinding bij UPC.
Om hen van de juiste info te kunnen voorzien wil ik enkel batch files maken die logs maken.
Het wil me alleen niet helemaal lukken. Nou moet ik erbij zeggen dat ik tamelijk nieuw ben bij batch ''scripting" (gisteren begonnen), maar deze simpele batch wil maar niet lukken.
Hieronder een script dat elke 30 seconde moet pingen naar mijn DNS bij UPC en naar mijn modem.
De replies of time-outs worden opgeslagen en weggeschreven met datum en tijd in een text bestand.
Waar het stuk loopt is bij het label pingmodem, op regel 40.
Zoals het nu staat geeft command de foutmelding "The system cannot find the file specified".
Wanneer ik het %modem% wijzig naar %local% werkt het evenmin. Maar het werkt weer wel wanneer er %dns% staat.
Ik zie niet waar ik een fout heb gemaakt en staar me eigen blind op die ene regel.
Wie kan me op de fout wijzen? Uiteraard zijn tips en tricks welkom!
ter info: ik draai Win7 Ultimate x64 SP1. In de map van het script is ook sleep.exe aanwezig.
Om hen van de juiste info te kunnen voorzien wil ik enkel batch files maken die logs maken.
Het wil me alleen niet helemaal lukken. Nou moet ik erbij zeggen dat ik tamelijk nieuw ben bij batch ''scripting" (gisteren begonnen), maar deze simpele batch wil maar niet lukken.
Hieronder een script dat elke 30 seconde moet pingen naar mijn DNS bij UPC en naar mijn modem.
De replies of time-outs worden opgeslagen en weggeschreven met datum en tijd in een text bestand.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| @ECHO OFF&& PUSHD&& SETLOCAL ENABLEDELAYEDEXPANSION&& SETLOCAL ENABLEEXTENSIONS
:: R. Langenberg | Sunday 22/09/2012 version: 1
:: This batchfile pings your DNS and modem every 30 seconds and logs the results.
:: Please set your DNS and modem IP adresses below
SETLOCAL&& set dns=217.46.228.196
SETLOCAL&& set modem=192.168.0.1
SETLOCAL&& set local=127.0.0.1
:: Begin
:AGAIN
CALL :time
ECHO Starting run on %date% %now%
CALL :pingdns
CALL :pingmodem
CALL :logresults
ECHO End of this run. Next run in 29 seconds...&& ECHO.
SLEEP 29
GOTO AGAIN
:: The ECHO command below indicates an error in the above code when executed.
ECHO ERROR - ERROR - ERROR - ERROR
ENDLOCAL
SLEEP 30
:time
FOR /F "tokens=*" %%T in ('TIME /T') do SET now=%%T
GOTO :EOF
:pingdns
ECHO Pinging your DNS at %dns% with 32 bytes
FOR /F "tokens=1,2,3,5 delims= " %%A in ('PING %dns% -n 1 ^| FINDSTR /I "Reply Request"') do SET ping1=%%A %%B %%C %%D
ECHO %ping1%
GOTO :EOF
:pingmodem
ECHO Pinging your modem at %modem% with 32 bytes
FOR /F "tokens=1,2,3,5 delims= " %%G in ('PING %modem% -n 1 ^| FINDSTR /I "Reply Request"') do SET ping2=%%G %%H %%I %%J
ECHO %ping2%
GOTO :EOF
:logresults
ECHO Logging results to file ..^\results.txt
ECHO %date% %now% %ping1% %ping2% >> results.txt
ENDLOCAL
GOTO :EOF
:: END |
Waar het stuk loopt is bij het label pingmodem, op regel 40.
Zoals het nu staat geeft command de foutmelding "The system cannot find the file specified".
Wanneer ik het %modem% wijzig naar %local% werkt het evenmin. Maar het werkt weer wel wanneer er %dns% staat.
Ik zie niet waar ik een fout heb gemaakt en staar me eigen blind op die ene regel.
Wie kan me op de fout wijzen? Uiteraard zijn tips en tricks welkom!
ter info: ik draai Win7 Ultimate x64 SP1. In de map van het script is ook sleep.exe aanwezig.