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

Batch schließt sich ohne Dienst -.-

Frage Entwicklung Batch & Shell

Mitglied: mc-doubleyou

mc-doubleyou (Level 2) - Jetzt verbinden

15.02.2011 um 18:16 Uhr, 3093 Aufrufe, 9 Kommentare

Man würde glauben jetzt da ich doch schon länger batche und auch immer erst google usw. würden die Fragen weniger, aber denkste -.-

Mein Problem(chen) ist das die Batch sich einfach schließt ohne pingen und ohne eine Datei zu erstellen.

Wenn ich es in der Kommandoline probiere und zuvor natürlich die "%" kürze dann meint er das ping hier nicht verarbeitet werden kann, versteh nur leider nicht warum.

Naja vl. sieht den Fehler ja wer, wäre nett.

01.
@echo on 
02.
 
03.
set /p ip="IP eingeben die gepingt werden soll: " 
04.
 
05.
if "%ip%"=="" goto:eof 
06.
if "%ip%"=="exit" goto:eof 
07.
 
08.
set name=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%_%ip% 
09.
 
10.
echo. 
11.
echo Zum Beenden des Dauerpings einfach das Fenster schliessen! 
12.
 
13.
:start 
14.
for /f %%i ('ping -n 1 %ip% | findstr "Ant"') do @set issue=%%i 
15.
 
16.
echo %issue% - %date% - %time:~0,8% >> %name%.log 
17.
goto start
lg mc-dy
Mitglied: 60730
15.02.2011 um 18:25 Uhr
moin,

ein - der erste Blick sagt mir:
for /f %%i ('ping -n 1 %ip% | findstr "Ant"')
  • Da fehlt mindestens ein in vor der sich öffnenden Klammer.
  • In der Klammer darf kein | stehen - außer es ist mit ^ maskiert.
  • Dann vermute ich - du willst mit der Schleife irgendwas bewirken - wahrscheinlich sowas
for /f "tokens=5" %i in ('ping -n 1 %ip% ^| findstr "Ant"') do echo %i


btw: Batche zum Testen immer in einer vorher selbst geöffneten Dosbuxse starten, nie per Doppelklick.
Und einzelne Befehlszeilen gerne solo ohne die Batch drumrum testen, dann klappert das auch mit dem Storch

Gruß
Bitte warten ..
Mitglied: bastla
15.02.2011 um 18:36 Uhr
... und idealer Weise kommt sogar noch ein "<" in der "ping"-Ausgabe vor [Edit] ... aber nicht mehr in %%i, wenn doch vorher abgeschnitten wird - ergibt aber eine eher fade Ausgabe ... [/Edit] - also wären die Chancen mit
01.
for /f %%i in ('ping -n 1 %ip% ^| findstr "Ant"') do set "issue=%%i" 
02.
 
03.
echo %issue:<=^<% - %date% - %time:~0,8% >> %name%.log
vermutlich wesentlich besser ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
15.02.2011 um 18:43 Uhr
@bastla:

na dann - leg ich auch noch einen drauf...

set /p ip="IP eingeben die gepingt werden soll: "
  • bedeutet ja - mit irgendeiner wechselnden IP soll Pong Ping gespielt werden und leerzeichen mögen wir ja auch nicht
echo %ip%,%issue:<=^<% - %date% - %time:~0,8%>> %name%.log
btw: Batch schließt sich ohne Dienst
ich schliesse den Dienst am Dienstag ab und die Diensttüre hinter mir mir zu.

Grüße
Bitte warten ..
Mitglied: bastla
15.02.2011 um 18:53 Uhr
@T-Mo
Die IP steckt schon im Namen des Logfiles ...

Allerdings sollte noch ein
set "issue="
ganz knapp vor Zeile 14 platziert werden - damit auch bemerkt wird, wenn aus der "for"-Schleife nix mehr kommt ...

... und in diesem Fall ev auch das Schreiben ins Log dankend abgelehnt werden kann:
if defined issue >>%name%.log echo %issue:<=^<% - %date% - %time:~0,8%
Grüße
bastla
Bitte warten ..
Mitglied: 60730
15.02.2011 um 22:29 Uhr
Zitat von bastla:
@T-Mo
Die IP steckt schon im Namen des Logfiles ...

  • hüstel - Urlaubsreifer und blinder, als ich es die letzten Tage bin, geht wohl nicht mehr hoffentlich
damit auch bemerkt wird, wenn aus der "for"-Schleife nix mehr kommt ...

Naja, ob wir es überhaupt bemerken, dass wir uns bei diesem Fred für den Job des Alleinunterhalters beworben haben?

Das Postfach vom TO müßte doch schon vollgelaufen sein ""
Aber ich schweife vom Thema ab...

Apropos schweifen
btw: Gestern wurden bei einem Wort, dass in Gänsefüßchen steht noch zwei "schräge Vögel angedichtet - heute sind es geschweifte Klammern.

edit - nein - die hast du wohl reingebastelt (um "das" zu umgehen?)

edit² noop - Gänsefüsse kann man wieder ohne Schnickschnack setzen.
edit³ dafür wird aus nem Smile ein Facewink usw.

N8 & Grüße
Bitte warten ..
Mitglied: mc-doubleyou
17.02.2011 um 09:21 Uhr
Danke erstmal,

Also das mit in hab ich mal verstanden und schähm ich mich auch grad *gg*

Zitat von bastla:
... und idealer Weise kommt sogar noch ein "<" in der "ping"-Ausgabe vor [Edit] ... aber nicht
mehr in %%i, wenn doch vorher abgeschnitten wird - ergibt aber eine eher fade Ausgabe ... [/Edit] - also wären die Chancen
mit
01.
for /f %%i in ('ping -n 1 %ip% ^| findstr "Ant"') do set "issue=%%i" 
02.
>  
03.
> echo %issue:<=^<% - %date% - %time:~0,8% >> %name%.log 
04.
> 
vermutlich wesentlich besser ...

Grüße
bastla

Zeile 3 muss ich gestehen kapier ich grad überhaupt nicht


Zitat von bastla:
@T-Mo
Die IP steckt schon im Namen des Logfiles ...

Allerdings sollte noch ein
set "issue=" 
> 
ganz knapp vor Zeile 14 platziert werden - damit auch bemerkt wird, wenn aus der "for"-Schleife nix mehr kommt ...

... und in diesem Fall ev auch das Schreiben ins Log dankend abgelehnt werden kann:
if defined issue >>%name%.log echo %issue:<=^<% - %date% - %time:~0,8% 
> 
Grüße
bastla

Auch hier habe ich so meine Problemchen zu verstehen was es mit <=^<% usw auf sich hat sieht mir nach einem tollen Muster aus ;)

lg mc-dy
Bitte warten ..
Mitglied: Biber
17.02.2011 um 09:50 Uhr
[OT]
Moin mc-doubleyou,

Zitat von mc-doubleyou:
Auch hier habe ich so meine Problemchen zu verstehen was es mit <=^<% usw auf sich hat sieht mir nach einem tollen Muster aus ;)
Ich sach ma' so...
Auf einem Büro-Kaffeebecher könnte ich mir das Muster vorstellen
Als Wohnzimmertapete wäre es mit ein wenig zu unruhig...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: mc-doubleyou
17.02.2011 um 12:18 Uhr
[OT]

joa dachte ich mehr an so Kaffee bescher statt E=MC² eben <=^<%


[/OT]

PS: Bitte erklären was es wirklich heißt. THX!

lg mc-dy
Bitte warten ..
Mitglied: bastla
17.02.2011 um 12:42 Uhr
Hallo mc-w!

Mit dem Zeichen ^ wird der Interpreter angewiesen, das folgende Zeichen nicht zu interpretieren, sonden es einfach so (als gewöhnlichen Text) zu verwenden (wird auch "maskieren" genannt) - das ist nur bei bestimmten Sonderzeichen, die eben ansonsten eine andere Bedeutung haben, sinnvoll/notwendig.

Da in einer vollständigen (hatte nur kurz drübergeschaut und die Reduktion auf das erste Wort der Zeile nicht mitbekommen) Ergebniszeile eines "ping" (wünschenswerter Weise) die Zeitangabe "<1 ms" vorkommen kann, wollte ich auf Nummer sicher gehen und dieses Zeichen (das ansonsten ja als Eingabe-Umleitung gedeutet würde) "maskieren" - dazu wird eben mit
%issue:<=^<%
eine Ersetzung vorgenommen - aus "<" würde "^<"; wenn's eh nicht vorkommt, ist das auch egal: wenn nix zu ersetzen ist, wird auch nix ersetzt ...
Fall 2:
set "issue="
löscht die Variable - neu gesetzt wird sie nur, wenn "ping" eine Zeile mit "Antwort" liefert, da ansonsten der "do"-Teil der "for"-Schleife ja gar nicht ausgeführt wird. Du kannst daher nach der Schleife prüfen, ob ein (neuer) Wert in der Variablen steht oder es sie gar nicht gibt (sie also "not defined" wäre). Bei Deiner ursprünglichen Version wird sie nie gelöscht, und egal, welches Ergebnis "ping" erbringt, hat sie nach der Schleife einen Wert - den neuen, oder den vom letzten Mal, als noch eine "Antwort"-Zeile zu verzeichnen war ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Windows Update Dienst per Batch beenden (12)

Frage von Justin98 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...