grundlegende batch Fragen

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.559
Hallo mal wieder

Ich habe zwei Fragen bezüglich batch Programmierung:

1) Ich möchte, das geprüft wird, ob ein IP im Netzwerk verfügbar ist, z.B. Mit Ping Befehl, nur dass im Falle des Erfolgs auch etwas durchgeführt wird z.B. ein Jump Befehl.

2) Ich weiß, wie man eine Ausgabe in eine Datei umleitet oder andersrum. Aber wie kann ich die Stelle, aus der etwas gelesen wird, oder in die etwas geschrieben wird definieren? Beispiel: Eine *.cfg, die das genaue Arbeiten meiner batch steuert, auch über mehrere Benutzungen hinweg.

Vielen Dank für eure Hilfe.
 
Hallo,

unter welchem System und muss es zwingend über Shell laufen oder kannst du auch einen doch etwas mächtigeren Client wie bspw. PuTTY nehmen?

Cheers,

Flo
 
Win7. Würde schon gerne Shell verwenden.

Zu 1) ERrorlevel probiere ich mal aus.

Gibt's noch einen Tip zu 2) ?
Ergänzung ()

%ERRORLEVEL% ändert sich nicht, egal ob Ping erfolgreich, oder nicht.
Ergänzung ()

Es klappt mit net view -IP-
Der Befehl probiert aber so lange
 
Ist bei mir immer 0 bei ping.
Ergänzung ()

Egal, ob's klappt, oder nicht.
 
@echo off
echo %ERRORLEVEL%
ping 192.168.2.1
echo %ERRORLEVEL%
pause

Ausgabe:
0
blabla von ping
Zielhost nicht erreichbar.

0
Ergänzung ()

Sry, Dummer Fehler. Die 1 ist der Router, der wahr nicht erreichbar, bei einer IP die wirklich nicht vergeben ist ist die Var dann auch 1. Sry.

Damit hat sich das geklärt, habt ihr noch eine Idee, wegen meines Punktes 2) ?
Ergänzung ()

Hab's jetzt:

Code:
for /f "tokens=1,2 delims==" %%f in (test.cfg) DO (
if %%f==1 set a=%%g
if %%f==2 set b=%%g
if %%f==3 set c=%%g
)

Klappt wenn die cfg folgendermaßen aufgebaut ist.
Code:
1=Wert1
2=Wert2
3=Wert3

Dabei Werden die Werte 1-3 den Variablen a-c zugeordnet.

Ich könnte den Befehl jetzt noch genauer erläutern, aber wenn man ech auf on lässt, kann man sich ja die einfach die Ausgabe durchlesen.

Dieser Block war auch nur der Part zum Auslesen der cfg. Das Neuschreiben habe ich dann realisiert, indem ich die cfg gelöscht habe und dann mittels:

Code:
echo.1=%a% > test.cfg
echo.2=%b% >> test.cfg
echo.3=%c% >> test.cfg

Habe jetzt aber noch ein anderes Problem. Ich teste ja mittels Ping, ob die Adresse verfügbar ist:
Code:
ping -n 1 -w 100 192.168.2.29
in einer Schleife

Aller 4 male ist das erfolgreich, obwohl es die IP nicht gibt und wenn ich es manuell mit Ping -t versuche kommt auch nie was an. Habe das Problem jetzt im Griff, indem ich einfach noch einen 2. Test dahinter geschälten habe und nur wenn beide erfolgreich sind geht's weiter. Das klappt auch, aber es würde mih trotzdem interessieren, warum in regelmäßigen Abständen eine Antwort kommt.
 
Zurück
Oben