robsondeluxe
Goto Top

ping -t in Batchdatei anhalten

Moin ...

hab ne kleine Batchdatei geschrieben, in der man Rechner anpingen kann. Diese verläuft so, dass sie erst nach der letzten Ziffer der IP fragt. Dann kommt eine Abfrage, wie viele Anfragen man machen möchte, bzw. ob der ping "endlos" (-t) erfolgen soll. Aber seht selbst:

@echo off
ECHO.

:start
	title ping.cmd

	cd \

rem ---------- Abfrage der IP-Adresse -----------------------

	set /p IP=letzte Ziffer der IP-Adresse angeben: 
	
	IF errorlevel 1 GOTO start

	title ping an 192.168.0.%IP%
ECHO.
ECHO.
ECHO 	192.168.0.%IP%
ECHO.
ECHO.
ECHO.

rem ---------- Abfrage der Anzahl (durchläufe) -------------

:error2
	set /p Anzahl_n=Anzahl der ping's eingeben (0=endlos):   

	IF errorlevel 1 GOTO error2

	IF /i "%Anzahl_n%"=="0" (ping -t 192.168.0.%IP%)  
	ELSE (ping -n %Anzahl_n% 192.168.0.%IP%)
ECHO.
ECHO.
ECHO.

rem ---------- Abfrage der Wiederholung ---------------------

	set /p weiter=Weitere ping Anforderungen ausfuehren? [j/n]:
ECHO.
ECHO.
ECHO.
	IF /i "%weiter%"=="n" (EXIT) ELSE GOTO start  


Soweit funktioniert auch alles, aber wenn ich eine Abfrage beende ([Strg]+[c]), dann fragt er, ob der Batchvorgang abgebrochen werden soll. Diese frage soll entweder gar nicht erscheinen oder gleich mit nein beantwortet werden.
Eine weitere Variante (die mir persönlich viel besser gefällt) wäre, dass ich den Pingvorgang in einem neuen Fenster öffne. Hier besteht allerdings das Problem, dass wenn ich diesen unterbreche nicht das Fenster offen hält.
Diese Version gefällt mir auch besser, aber es besteht eben dieses Problem ... (mit z.B. PAUSE hab ich das schon probiert, aber das hilft nix .... da führt er die Pause vorher oder im Hauptfenster aus)


Danke schon ma im voraus

MfG Robson

Content-ID: 31326

Url: https://administrator.de/contentid/31326

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

Biber
Biber 27.04.2006 um 20:56:20 Uhr
Goto Top
Moin Robson,

a) IF /i "%Anzahl_n%"=="0" (echo N|ping -t 192.168.0.%IP%)
- oder -
b) IF /i "%Anzahl_n%"=="0" (echo N|cmd /c ping -t 192.168.0.%IP%)

...sollten diese Anfordeung erfüllen, also endlos pingen und bei Ctrl-C ohne Rückfrage abbrechen.

Grüße
Biber
Robsondeluxe
Robsondeluxe 27.04.2006 um 23:06:46 Uhr
Goto Top
Danke erst mal, für die Antwort, aber da gibt es noch 2 Möglichkeiten:

1.) Ich bin zu doof, das in die Datei zu kopieren ODER
2.) das geht ni

Er fragt trotzdem noch ab ... vielleicht gibt es ja noch ne variante, das er ein neues Fenster offen hält ... (aber ohne ne 2. Datei anzulegen)

MfG
Robson
Biber
Biber 28.04.2006 um 08:35:29 Uhr
Goto Top
Sorry, Robson,

gestern war ich zu blöd, nicht Du.. *gg
Muss natürlich "echo J|ping...." heißen statt "echo N|ping..."

Grüße
Biber
Robsondeluxe
Robsondeluxe 29.04.2006 um 18:00:34 Uhr
Goto Top
tach ...

deine variante gehte immer noch nicht ... trotzdem danke
ich hab jetzt mehrere Lösungen gefunden (das erspar ich dir lieber mal, weil ich sonst mind. 3 Seiten schreiben würde *g*)

Meine neuste Version geht soweit ... nur leider gibt es noch ein kleines Problem ...
ich ruf jetzt ein neues Fenster auf (und es bleibt sogar offen) mit
	start cmd /K ping -t 192.168.0.%IP%
hier besteht das Problem, das ich nix dahinter schreiben kann, wie z.B. PAUSE und danach EXIT. Also es sollte so sein, dass ich mit irgendeiner Taste das neue Fenster wieder schließen kann (sonst muss man immer das zu lange wort "EXIT" eingeben) ...


MfG
Robson
scriptkiddy
scriptkiddy 30.04.2006 um 20:36:52 Uhr
Goto Top
Hm irgendwas stimmt da bei mir wohl nich....
es nimmt mir hier eine falsche ip ich hab im netztwerk die 192.168.69.xx

wenn ich dem jetzt als Beispiel die endziffer 30 angebe dann pingt der für 192.168.0.30
ich kann in deinem script aber irgendwie keinen fehler entdecken.... face-sad
Könnt ihr mir sagen wieso das bei mir so ist ?

Grüße Scriptkiddy face-smile
Robsondeluxe
Robsondeluxe 01.05.2006 um 13:04:57 Uhr
Goto Top
Okay ... ich schreib noch ma das ganze hier rein ...
@echo off
ECHO.

:start

	set IP=
	title ping.cmd

	cd \

rem ---------- Abfrage der IP-Adresse -----------------------


	set /p IP=letzte Ziffer der IP-Adresse angeben: 

	IF /i "%IP%"=="q" EXIT  
	IF /i "%IP%"=="a" GOTO Anzahl  
	IF /i "%IP%"=="?" GOTO Help  
	IF /i "%IP%"=="" GOTO Help  
	IF /i "%IP%"=="o" GOTO open  
	IF /i "%IP%"=="f" GOTO Free  


	title ping an 192.168.0.%IP%
ECHO.
ECHO.
ECHO 	192.168.0.%IP%
ECHO.
ECHO.
ECHO.
	start cmd /K ping -t 192.168.0.%IP%

	GOTO start



rem ---------- Abfrage der Anzahl (durschläufe) -------------

:Anzahl
	set IP=
	set /p IP=letzte Ziffer der IP-Adresse angeben (danach Anzahl): 
	IF /i "%IP%"=="q" EXIT  
	IF /i "%IP%"=="" GOTO Anzahl  

:error
	set /p Anzahl_n=Anzahl der ping's eingeben (0=endlos):   
	IF /i "%Anzahl_n%"=="q" EXIT	  
	IF /i "%Anzahl_n%"=="" GOTO error  


	IF /i "%Anzahl_n%"=="0" (start cmd /K ping -t 192.168.0.%IP%) ELSE (start cmd /K ping -n %Anzahl_n% 192.168.0.%IP%)  
ECHO.
ECHO.
ECHO.

	GOTO start


rem ---------- weiteres Fenster öffnen ----------------------

:open

	start ping.cmd


	GOTO start


rem ---------- Freie ping / Computernamen -wahl -------------

:Free
	set /p IP_F=IP-Adresse oder Computernamen eingeben: 
	start cmd /K ping -t %IP_F%


	GOTO start


rem ---------- Hilfe ----------------------------------------

:Help

ECHO.
ECHO Möglichkeiten:
ECHO.
ECHO 1) q = Beenden
ECHO 2) a = IP-Adresse angeben und bestimmen, wie viele Anfragen ...
ECHO 3) o = oeffnet ein neues Fenster
ECHO 4) f = freie Wahl der IP-Adresse oder Computername
ECHO 5) [ZAHL] = die letzte Ziffer der anzupingenden IP angeben
ECHO.
ECHO.
ECHO.

	GOTO start

Wenn du den IP-Adressenbereich 192.168.69.xx hast, dann musst die einfach dort wo 192.168.0. steht 192.168.69. hinschreiben ... dann geht es !!!

MfG
Robson
scriptkiddy
scriptkiddy 01.05.2006 um 13:22:49 Uhr
Goto Top
und was soll dann die Fenster zuspamme ? face-big-smile
Egal was ich mache da kommen nur millionen von fenstan face-big-smile


Grüße Scriptkiddy face-smile
Robsondeluxe
Robsondeluxe 01.05.2006 um 16:59:28 Uhr
Goto Top
weiß ni ...
das einzige, was bei mir aufgefallen ist, das er das Backslash ni mit angezeigt hat ...
Eigentlich muss eins hinter cd
:start
set IP=
title ping.cmd
cd <Backslash>
aber ansonsten müsste es funzen ...
scriptkiddy
scriptkiddy 01.05.2006 um 17:42:08 Uhr
Goto Top
Sry aber irgendwie geht der bei mir nich wenn ich die IP eingebe kommt da neues fensta und in dem alten frägt dad nochma nach den letzten beiden Ziffern....


Grüße Scriptkiddy
Robsondeluxe
Robsondeluxe 01.05.2006 um 18:24:12 Uhr
Goto Top
ach so ... hihi face-smile

ein bisschen weiter oben habe ich geschrieben, dass ich es jetzt anders gemacht habe.
Es soll ein neues Fenster auf gemacht werden und dort der ping durchlaufen. Das hat den Vorteil, dass man die Antworten besser vergleichen kann. Du kannst es auch in einem Fenster auf machen, aber da besteht das Problem, dass wenn man den ping abbricht, die blöde Frage gestellt wird, ob man den Batchvorgang beenden möchte ...
Das kann man auch umgehen, in dem man, bevor er diese Frage stellt, die Batchdatei noch einmal aufruft und der Rest, was vorher drin steht auch erhalten bleibt, ABER wenn man die Datei wirklich mit q oder so beenden möchte, fragt er so oft nach, wie oft die [Strg]+[C] gedrückt hast.

Ich weiß eben bloß noch nicht, wie ich das 2. Fenster mit einem Tastedruck auch beenden kann ... HELP face-smile

MfG
Robson
scriptkiddy
scriptkiddy 05.05.2006 um 21:54:10 Uhr
Goto Top
Ich weiß auch nicht ich glaube das ich eifnach zu dumm für dieses Script bin face-sad

Ich bekomm das einfach nicht zum laufen .....


Grüße Scriptkiddy
Robsondeluxe
Robsondeluxe 06.05.2006 um 01:01:02 Uhr
Goto Top
was genau möchtes du denn machen?
Möchtes du, dass es in einem neuen Fenster geöffnet wird (so, wie es jetzt is) ODER
lieber, dass es alles in einem Fenster bleibt?

Wenn du es in "mehreren" Fenstern haben möchtest (so steht es wie gesagt oben), was sagt er denn, wenn du es ausführst?
Beschreibs mal genauer face-smile


MfG
Robson