Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Batch Datei macht was sie will!





Frage

Moinsen ich hab mir den Spaß gemacht und mir eine kleine Batch Datei geschrieben, welche es mir ermöglichen soll per Tastatureingabe einen bestimmt gerichteten Ping abzuschicken. Diesen Ping starte ich in einem neuen Kommandofenster... so zumindest die theorie... Zum besseren Verständnis mal das Script: @echo off Setlocal EnableExtensions echo Ping Verarbeitung Title Ping Verarbeitung :Start set /P X= Servernummer, "alle" bzw. "ende" eingeben if /I "%x%"=="xx" goto xx if /I "%x%"=="yy" goto yy if /I "%x%"=="zz" goto zz if /I "%x%"=="alle" goto alle if /I "%x%"=="ende" goto ende if /I "%x%"=="" goto papalapap goto fe :xx start cmd /c Ping xx goto start :yy start cmd /c Ping yy goto start :zz start cmd /c Ping zz :alle start cmd /k Ping xx start cmd /k Ping yy start cmd /k Ping zz goto start :papalapap echo Bitte eingabe wiederholen! goto start :fe echo Bitte Eingabe Wiederholen! goto start :ende Die "xx/yy/zz" sind natürlich in der Datei durch Ip's ersetzt, die ich jetzt nicht mit angeben möchte. Hier nun aber letztlich mein Problem: Wenn ich nun die Eingabe xx oder alle oder yy oder zz tätige dann öffnet sich ein neues Batch Fenster, in dem dann wieder nach einer Eingabe gefragt wird. gebe ich "alle" ein dann bekomme ich 3 Fenster mit der Ursprünglichen Eigabeaufforderung. So ich hoffe mich hat jemand verstanden und ist bereit mir zu helfen.

Antwort 1 von batti-batch

Hallo Frag_den_Fuchs,


ich habe Dein Problem so verstanden, das Du den Ping an alle in einem einigen Fenster haben möchtest.

Das lässt sich mit der folgenden Zeile realisieren:

START CMD /c "TITLE=Ping an alle& PING 127.0.0.1& PING 127.0.0.1& PING 127.0.0.1& PAUSE& EXIT" 


Ich habe mir mal Deine Batch-Datei angeschaut und sie an der einen oder anderen Stelle ein bisschen umgebaut. Falls Du die neue Variante testen möchtest, habe ich als IP-Adresse den
localhost
, also
127.0.0.1
, angegeben.
Diese Adresse kannst Du mühelos Deinen Bedingungen anpassen.

@ECHO off
SETLOCAL enableextensions

TITLE Ping-Verarbeitung

:beginn
CLS
ECHO Ping-Verarbeitung
ECHO Bitte xx fuer 127.0.0.1, yy fuer 127.0.0.1, zz fuer 127.0.0.1
ECHO oder "alle" bzw. "ende" eingeben
SET /P x=Ihre Eingabe:  
IF /I "%x%"=="xx" GOTO :xx
IF /I "%x%"=="yy" GOTO :yy
IF /I "%x%"=="zz" GOTO :zz
IF /I "%x%"=="alle" GOTO :alle
IF /I "%x%"=="ende" GOTO :ende
GOTO :beginn


:xx
START CMD /c "TITLE=Ping an 127.0.0.1 (1)& PING 127.0.0.1& PAUSE& EXIT"
GOTO :beginn


:yy
START CMD /c "TITLE=Ping an 127.0.0.1 (2)& PING 127.0.0.1& PAUSE& EXIT"
GOTO :beginn


:zz
START CMD /c "TITLE=Ping an 127.0.0.1 (3)& PING 127.0.0.1& PAUSE& EXIT"
GOTO :beginn


:alle
START CMD /c "TITLE=Ping an alle& PING 127.0.0.1& PING 127.0.0.1& PING 127.0.0.1& PAUSE& EXIT"
GOTO :beginn


:ende



Die Abfrage zu Beginn ist einfacher und zugleich komfortabler. Deine Sprungmarke
Start
habe ich durch
:beginn
ersetzt; das beugt Verwechslungen mit der
START.EXE
vor und macht das Programm einfacher wartbar.
In jeden der "Ping-Blöcke" habe ich den Befehl
PAUSE
eingebaut, damit Du den Programmablauf leichter kontrollieren kannst. Der nachfolgende Befehl
EXIT
schliesst diese
CMD
-Instanz.

Viel Spass beim Testen.


Herzliche Grüße
batti-batch

Antwort 2 von Frag_den_Fuchs

Erstmal danke dafür...
Das "Progrämmchen" an sich läuft theoretisch schon so wie ich es brauche ... aber:

Ich habe gestern noch mal rumprobiert und kam zu dem Schluss, dass das Programm bei der Ausführung durch Doppelklick nicht funktioniert! Ich hab mir den Spaß gemacht und dein Script implementiert. Das Ergebniss ist folgendes:

Tippe ich xx ein komme ich statt zu meinem Ping wieder auf die Seite wo mich mein Programm auffordert xx, yy, zz abzugeben.

Gehe ich aber folgenden Weg:
Start-->Ausführen-->cmd-->und dann per drag and drop die Batch Datei in die Konsole-->Enter dann funktioniert mein Programm ohne irgendwelche Probleme.

Warum?

Antwort 3 von Frag_den_Fuchs

*Nachtrag:
Ist es möglich, dass sich irgendwein Programmablauf in meinen Speicher gefressen hat und bestimmte abfolgen immer zu diesem fälschlich belegtem Speicherabschnitt gelangen?

Ich hab keine Ahnung...*kopfschüttel*

Antwort 4 von batti-batch

Hallo Frag_den_Fuchs,


ich habe das Ganze eben nochmal getestet, indem ich den Code aus meiner Antwort in Notepad kopiert und als *.bat-Datei abgespeichert habe. Das Ganze läuft vollkommen problemlos sowohl direkt unter DOS als auch bei einem Doppelklick auf diese Datei.

Vielleicht möchtest Du diesen Weg versuchen? Es kann nämlich sein, das "beim Einbau" in eine bereits bestehende Datei irgendwelche anderen Zeichen oder Befehle übrig bleiben, die den Ablauf durcheinander bringen.

Viel Erfolg!

Herzliche Grüße
batti-batch

Antwort 5 von Frag_den_Fuchs

Nochmal danke für die Antwort aber des isses nich.
Ich glaube, dass ich hier nem generellen Problem verfallen bin.

Lustig wirds nämlich, wenn ich folgende Batch ausführe.

@echo off
ping irgendeineurl.ip -t
Pause

Wenn ich sie nun normal starte erscheint statt des Pings das Kommandofenster der anderen Batch datei die mich auffordert xx, yy, zz abzugeben...

Wie kann sowat sein?
Das Script gibt ja nichteinmal mit vieeeeeeeel Fantasie ne Brücke oder nen Call auf die andere Batch Datei her...

Antwort 6 von batti-batch

Hallo Frag_den_Fuchs,


nun wirds in der Tat richtig interessant.

Ein Neustart des Rechners hast Du sicher schon probiert... Vielleicht beendest Du mal (sofern möglich) alle anderen Anwendungen.

Eine wirkliche Idee zur Lösung Deines Problems habe ich im Augenblick nicht, würde Dich aber bitten, die Ergebnis oder wenigstens den weiteren Verlauf der Sache hier zu posten.


Herzliche Grüße
von batti-batch

der gespannt ist, wie diese Sache ausgeht.

Antwort 7 von Frag_den_Fuchs

Tach nochama,
also logo hab ich den Rechner schon Rebootet.
Ich habe auch alle Prozesse abgeschossen die ich nicht absolut dringend brauchte. Ergebniss war: nix...
Ich habe das Gefühl, dass das Programm schon das machen "will" was es soll aber irgendwo hängts dann noch.
Ich habe leider auch keinen Plan warum die Anwendungen unter Start-->Ausführen-->cmd-->und dann per drag and drop die Batch Datei in die Konsole-->Enter einwandfrei funktionieren.

Irgendwo im Speicher oder in der Reg?! scheint es zu kleben.
Da ich mich hier aber nicht auskenne bin ich auf externe Hilfe angewiesen.

Dementsprechend... Hülfe =)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: