maheula
Goto Top

Batch Lernfrage Variable in for-Schleife nutzen

Hallöchen,

Ich hätte eine kurze Frage bezüglich Batch, in welchem ich mich gerade ein wenig zu schulen versuche.

Ich wollte ein kleines Programm schreiben, mithilfe dessen ich in diverse Richtungen Pings abgeben und die Ergebnisse übersichtlich in einem txt file abspeichern kann.

Das habe ich nach einigem Rumprobieren und Forschen auch ganz gut lösen können, allerdings würde ich das Ganze jetzt gerne interaktiv gestalten, soll heißen mit einer einfachen Eingabe zu Beginn.

Nur will der Ping meine zu Anfangs vom User gefüllte Variable einfach nicht fressen...

echo Bitte IP oder URL angeben
set /P IP = Ihre Eingabe: 

:START

for /f "delims=" %%i in ('ping -n 1 %IP% ^|findstr "Bytes= Anforderung"') do echo %DATE% %TIME% %%i >>Ping_Log.txt  

timeout /t 5

GOTO START

Es wird nicht gepingt und auch keine txt mehr erstellt.

Ist wahrscheinlich nur ein kleines Detail, das man einfach nur wissen muss, aber ich finde zu diesem Fall nichts, was mir weiter geholfen hätte.

Zusatz:
Hat einer eine Empfehlung für ein gut aufgebautes Batch Tutorial?
Würde hier gerne anfangen und später dann die komplexeren Sprachen angehen.
One Step after another face-wink

Danke schonmal!

Content-Key: 356756

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

Printed on: April 16, 2024 at 16:04 o'clock

Member: Friemler
Solution Friemler Dec 01, 2017 at 11:52:05 (UTC)
Goto Top
Moin,

Batchscript ist keine Programmiersprache sondern eine Behelfskrücke zur Automatisierung von Vorgängen. Der Interpreter wurde ursprünglich für DOS in Assembler geschrieben und irgendwann in den 90ern auf Windows NT portiert. Dabei scheinen Entwickler am Werk gewesen zu sein, die von der Programmierung eines Befehls-Parsers nicht viel Ahnung hatten. Deshalb ist Batchscript voller Bugs und Fallstricke und somit alles andere als nicht komplex!

Der Fallstrick über den Du gestolpert bist ist das Freizeichen hinter dem Variablennamen in Zeile 2. Deine Variable heißt somit nicht 'IP' sondern 'IP ' (mit angehängtem Leerzeichen).

Steige lieber gleich in PowerShell ein, als Anfänger Batchscript zu lernen macht heutzutage nicht mehr viel Sinn.

Grüße
Friemler
Member: MaHeula
MaHeula Dec 01, 2017 at 12:08:30 (UTC)
Goto Top
Danke dir!

Ja, ich hatte schon bei meiner ersten Version Probleme mit so etwas in der Art. Erst wollte ich nämlich den Log-Befehl in die zweite Zeile schreiben, aber die Variable ist nach der For-Schleife schon wieder leer und allein das hat mich ewige Zeiten gekostet...

Ja, Sprache ist vielleicht in dem Fall etwas hochgegriffen, aber man kann halt so schön für Kunden schnelle Hilfskrücken schreiben. face-smile

Aber ich will mir auch nichts Unsinniges beibringen, wenn es bessere Alternativen gibt.
Kennst du für Power Shell zufällig ebenfalls ein gutes Einsteiger Tutorial? Man findet ja relativ viel in Google, aber die Qualität ist da ja immer der Knackpunkt.

Liebe Grüße,
Max
Member: Friemler
Friemler Dec 01, 2017 at 13:29:51 (UTC)
Goto Top
Hallo Max,

tut mir leid, ich kann da keine Empfehlung aussprechen. Ich selbst habe mich bisher erfolgreich um die PowerShell herumgedrückt, brauche diese Kenntnisse als Entwickler von Desktop Applikationen aber auch nicht. Für meine Bedürfnisse reicht das olle Batchscript und die Kenntnisse darin, die ich mir in den letzten 30 Jahren angeeignet habe.

Grüße
Friemler
Member: Penny.Cilin
Solution Penny.Cilin Dec 01, 2017 at 14:02:41 (UTC)
Goto Top
Hallo @MaHeula,

ich kann Dir von Dr. Tobias Weltner - Mastering Powershell empfehlen. Ist allerdings in Englisch. Das ist als PDF im Internnet zu finden.

Gegebenenfalls sende mir eine PN.

Gruss Penny
Member: MaHeula
MaHeula Dec 04, 2017 at 07:43:08 (UTC)
Goto Top
Hallo Penny,

Danke dir, Ich habe mir die PDF angeguckt. Das sieht sehr vielversprechend aus.

Schön strukturiert und mit verständlichen Erklärungen.

Englisch sollte benfalls kein Problem sein.

Dann mal ran an den Speck!

Liebe Grüße,
Max