Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

String auslesen in Batchdatei.

Frage Entwicklung Batch & Shell

Mitglied: dicker2503

dicker2503 (Level 1) - Jetzt verbinden

08.11.2011, aktualisiert 08:54 Uhr, 2339 Aufrufe, 7 Kommentare

Hallo,

ich bin neu hier und gerade bei meiner ersten etwas umfangreicherin Batchdatei bei.
Ich brauche eine Batchdatei die alle 10sek. einen Ping an z.b. google.de macht und die Zeit ausliest.
Wenn die verbindungszeit größer als 1000ms ist soll, Zeit und Datum + Verbindungszeit in eine TXT geschrieben werden.

Ich habe es jetzt mit find sting probiert aber leider nicht hinbekommen.
Hat jemand eine Idee?
Das ist mein aktueller Quelltext.
Ping alle 10sek. funktioniert und er schreibt in eine LOG auch Computernamen usw.
Allerdings schreibt er da wo die ZEit stehen sollte, "ungültiger parameter".


@SET LOG=%COMPUTERNAME%. log
@ECHO. >%LOG%
rem @ECHO. >>%LOG%
@ECHO Daten des Rechners %COMPUTERNAME% >>%LOG%
@ECHO. >>%LOG%
@ECHO Datum : %DATE% >>%LOG%
@ECHO Zeit : %TIME% >>%LOG%
@ECHO Computername : %COMPUTERNAME% >>%LOG%
@ECHO Aktueller User : %USERNAME% >>%LOG%
ping 223.254.253.37 /n 1 find string /i/C:"TTL" >>%LOG%
ping /n 11 localhost >nul
Mitglied: bastla
08.11.2011 um 09:15 Uhr
Hallo dicker2503 und willkommen im Forum!

Die Zeit könntest Du so in eine Variable bekommen:
01.
for /f "tokens=4 delims=m " %%i in ('ping 223.254.253.37 /n 1^|findstr /c:"Minimum ="') do set /a Zeit=%%i 
02.
if %Zeit% geq 1000 echo langsam
Mit der "for"-Schleife wird die Ausgabe der Art
    Minimum = 53ms, Maximum = 53ms, Mittelwert = 53ms
anhand der Trennzeichen "m" (Groß-/Kleinschreibung wird nicht berücksichtigt) und Leerzeichen in die "Tokens"
  1. ini
  2. u
  3. =
  4. 53
  5. s,
  6. axi
...
zerlegt.
Wenn Du den Teil in der Klammer betrachtest (wobei das "^" nur wegen der Verwendung in der Schleife erforderlich ist), solltest Du auch feststellen können, weshalb Du in Deinem Batch die genannte Fehlermeldung erhältst ...

Grüße
bastla

[Edit] Fehlendes % nachgetragen [/Edit]
Bitte warten ..
Mitglied: Skyemugen
08.11.2011 um 09:25 Uhr
Aloha bastla,

und wenn man jetzt noch das fehlende Prozentzeichen bei %i hinzufügt, klappt das auch mit dem Nachbarn :P

... ich persönlich hätte auch hier auf die Suchfunktion verwiesen, ähnliches gab es vor einigen Wochen erst.

greetz André

P.S.: @TE schau dir bitte beim nächsten Mal das lustige, rot markierte Wort Formatierungshilfe an, dort gibt es gar wunderbare <code></code>-Tags
Bitte warten ..
Mitglied: bastla
08.11.2011 um 09:31 Uhr
@skye
Danke für den Hinweis - hab's oben geändert ...

Grüße
bastla

P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?
Bitte warten ..
Mitglied: Skyemugen
08.11.2011 um 10:08 Uhr
Zitat von bastla:
P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?

Alle dazu hilfreichen threads finde ich mit den Suchbegriffen findstr ttl ... in Sachen batch, wenn es etwas spezifischer ist, würde ich nie Nach Wörtern aus Überschriften suchen ... bei der Überschrift hier würde man auch nicht auf das Thema stoßen ^__^
Bitte warten ..
Mitglied: bastla
08.11.2011 um 11:44 Uhr
@skye
Alle dazu hilfreichen threads finde ich mit den Suchbegriffen findstr ttl
Wie Du gesehen hast, war schon "findstr" das Problem ...

... abgesehen davon, dass es eigentlich um das Auslesen des Zeit-Wertes ging ...

Grüße
bastla
Bitte warten ..
Mitglied: dicker2503
08.11.2011 um 15:01 Uhr
Hallo und danke für deine Hilfe aber die beiden Zeilen funktionieren nicht =(
Wenn ich folgendes benutze gibt er mir die Zeit aus.

set homeserver=74.125.39.147
echo Pinge..
for /f "tokens=5" %%i in ('ping -n 1 %homeserver%^|findstr "Zeit"') do cls&echo Homeserver: %%i
pause

Jetzt muss ich es nur noch hinbekommen das er mit den Wert mit Datum und Zeit in eine TXT schreibt wenn dieser 1000 überschreitet.
Bitte warten ..
Mitglied: bastla
08.11.2011 um 15:25 Uhr
Hallo dicker2503!
die beiden Zeilen funktionieren nicht =(
... sollte vielleicht genauer heißen "... funktionieren bei mir nicht" :
D:>type Zeitermittlung.cmd 
setlocal 
set homeserver=74.125.39.147 
for /f "tokens=4 delims=m " %%i in ('ping %homeserver% /n 1^|findstr /c:"Minimum 
 ="') do set /a Zeit=%%i 
if %Zeit% geq 1000 echo langsam 
echo %Zeit% 
D:>Zeitermittlung 
 
D:>setlocal 
 
D:>set homeserver=74.125.39.147 
 
D:>for /F "tokens=4 delims=m " %i in ('ping 74.125.39.147 /n 1|findstr /c:" 
Minimum ="') do set /a Zeit=%i 
 
D:>set /a Zeit=32 
 
D:>if 32 GEQ 1000 echo langsam 
 
D:>echo 32 
32
Das Ganze unter XP SP3 ...
Das Ergebnis Deines Ansatzes sieht etwa so aus:
Zeit=33ms
und lässt sich dadurch nicht ganz so gut mit 1000 vergleichen ...

Grüße
bastla

P.S.: Den nicht unbunten Hinweis von Skye auf die Formatierungsmöglichkeit für Code hast Du aber schon bemerkt?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
String Zeichenpaare auslesen und bearbeiten (6)

Frage von ahstax zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit Batchdatei Informationen auslesen und diese strukturiert in Excel ausgeben (9)

Frage von Flodsche zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Windows 7 Pro x64 Key aus einer (fast) kaputten HDD auslesen (7)

Frage von carbon1X zum Thema Festplatten, SSD, Raid ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Batch & Shell
Skripterstellung Lehrling (22)

Frage von 133119 zum Thema Batch & Shell ...

Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...