Avatar billede mlj-foto Nybegynder
21. marts 2013 - 16:39 Der er 14 kommentarer

Gammel batch script hjælp

Hej alle sammen.

Jeg har et server som kan have 2 forskellige internetforbindelser den ene en billig satelit, og den anden en dyr linje.

på skibet vælger man via 2 bat script om man kører på den ene eller anden linjen til mail, ved at der bliver lavet en route i routing taballen.

jeg vil gerne lave et simpelt script som tester om det er den ene eller anden linje der bruges, man kan ikke få min søge funktion til at virke i det gode gamle batch script

@echo off
:Welcome
echo Welcome to the Connection Test
pause

:start
Route print >route.txt

Color 02

findstr /r "172.21.27.1" route.txt
IF ERRORLEVEL 0 GOTO gateway1
IF ERRORLEVEL 1 GOTO gateway2

:gateway1
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING IRIDIUM      ****
echo *****    172.21.27.7        ****
pause
GOTO slet

:gateway2
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING SATELITE      ****
echo *****    172.21.27.1        ****

pause
GOTO slet
:slet
del route.txt

håber nogen kan gennemskue dette
21. marts 2013 - 16:56 #1
Hvor går hvad 'galt' ?

---

PS: Har du stadig problemer her ->
www.eksperten.dk/list/aabnespoergsmaal/mlj-foto
Avatar billede martens Guru
21. marts 2013 - 17:52 #2
så virker det :o)


@echo off
:Welcome
echo Welcome to the Connection Test
pause

:start
Route print >route.txt

Color 02

findstr /r "172.21.27.1" route.txt
IF ERRORLEVEL 0 GOTO gateway1
IF ERRORLEVEL 1 GOTO gateway2

:gateway1
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING IRIDIUM      ****
echo *****    172.21.27.7        ****
pause
GOTO slet

:gateway2
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING SATELITE      ****
echo *****    172.21.27.1        ****

pause
GOTO slet
:slet
del route.txt




der er "blot" byttet om på
IF ERRORLEVEL 0 og IF ERRORLEVEL 1
Avatar billede martens Guru
21. marts 2013 - 17:53 #3
i selvsamme batch-fil kan du jo også enable samt disable NIC´s ;o)
Avatar billede lclemens Nybegynder
21. marts 2013 - 17:56 #4
#2 tror jeg heller ikke virker.

IF ERRORLEVEL x

Snyder lidt. Sætnigen er sand, hvis errorlevel er større eller lig x. Løsningen her er helt at fjerne den første if.
Avatar billede martens Guru
21. marts 2013 - 17:56 #5
UPS.. var lige lidt for hurtig på aftrækkeren ....
here we go :


@echo off
:Welcome
echo Welcome to the Connection Test
pause

:start
Route print >route.txt

Color 02

findstr /r "172.21.27.1" route.txt
IF ERRORLEVEL 1 GOTO gateway2
IF ERRORLEVEL 0 GOTO gateway1


:gateway1
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING IRIDIUM      ****
echo *****    172.21.27.7        ****
pause
GOTO slet

:gateway2
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING SATELITE      ****
echo *****    172.21.27.1        ****

pause
GOTO slet
:slet
del route.txt
Avatar billede lclemens Nybegynder
21. marts 2013 - 17:58 #6
Du kunne evt:

Route print | findstr "172.21.27.1" >nul

Din /r har jeg fjernet, da det ikke er et regulært udtryk
Avatar billede mlj-foto Nybegynder
22. marts 2013 - 08:20 #7
HAr lige prøvet her til morgen.
ser ikke ud til at virke :(

@echo off
:Welcome
echo Welcome to the Connection Test
pause

:start
Route print >route.txt

Color 02

findstr  "172.21.27.1" route.txt
IF ERRORLEVEL 1 GOTO gateway2
IF ERRORLEVEL 0 GOTO gateway1


:gateway1
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING IRIDIUM      ****
echo *****    172.21.27.7        ****
pause
GOTO slet

:gateway2
cls
echo *****Testing your network card****
echo *****    CONNECTION OK      ****
echo *****    USING SATELITE      ****
echo *****    172.21.27.1        ****

pause
GOTO slet
:slet
del route.txt

I min rute tabel står der 172.21.27.7, men den ryger ned på gateway2
Det virker ikke som om at den kan tjekke på ipadresen
Avatar billede lclemens Nybegynder
22. marts 2013 - 11:30 #8
hvis du sætter en pause ind efter route print, får du så en access denied?
Avatar billede martens Guru
22. marts 2013 - 22:50 #9
Jeg har testet scriptet med 2 NIC´s med forskellige IP´er

Works like a charm ... ;o)
23. marts 2013 - 09:11 #10
Generelt:

route.txt

bør ændres til

%TEMP%\route.txt

alle steder... Det er noget 'rod' at oprette midlertidige filer i mappe ??? (Typisk C:\Windows\System32)
Avatar billede martens Guru
23. marts 2013 - 10:19 #11
Jeg ved ikke om det er noget rod, at oprette midlertidige filer i mapper ( her desktop ) .. Det sker jo overalt i filsystemet..
scriptet afslutter jo også ganske flot med "del route.txt"  ;o)
23. marts 2013 - 10:22 #12
Jo jo - men det kan jo være at den - i andet tilfælde - vil skrive "route.txt" i en mappe der ikke er (skrive)adgang til ? Og der er der altid til %TEMP% mappen

Sådan gør jeg altid ...
Avatar billede lclemens Nybegynder
23. marts 2013 - 11:12 #13
Umiddelbart synes jeg ikke det er den smukkeste løsning, når man kan "pipe" output fra et program til et andet. Så slipper man helt for midlertidige filer.
23. marts 2013 - 12:40 #14
Prøv at 'lege' med denne kombination ->

Route print | findstr  "172.21.27.1"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester