Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Finde NICHT in .txt und gib diese Zeile aus

Mitglied: mc-doubleyou

mc-doubleyou (Level 2) - Jetzt verbinden

08.02.2010 um 09:32 Uhr, 3733 Aufrufe, 14 Kommentare

Hallo,

batchscripten macht zwar Spaß aber die Skripte immer was sie wollen und nicht was ich ^^

Ich würde ein Skript benötigen das nichts anderes macht als eine txt nach "NICHT zu durchsuchen und betroffene Zeilen auszugeben. Mit den bisherigen Skripten die ich gefunden habe hab ich es geschafft das er mir eine Meldung ausgibt wenn er kein NICHT gefunden hat das ist aber genau falsch denn wenn das der Fall ist sollte er die Batch selbst schließend und niemanden damit belästigen.

Im Detail geht es darum das ich eine Liste PCs anpinge und dann das Ergebnis in eine TXT schreiben lasse sollte er ein NICHT finden (steht für NICHT online) dann soll das Batch Fenster offen bleiben und mir zeigen, da ist was nicht OK am besten eben die Zeile so das ich weiß was ist nicht OK

Danke schon mal

LG MCD
Mitglied: laster
08.02.2010 um 09:37 Uhr
Hallo MCD,

01.
... 
02.
find /I "NICHT" pinfliste.txt  
03.
if %errorlevel%==0 pause 
04.
...
so ähnlich sollte doch alles möglich sein (gibt es schon viele Hinweise im Forum).

vG LS
Bitte warten ..
Mitglied: mc-doubleyou
08.02.2010 um 10:16 Uhr
@laster

danke, aber da ich schon ein Gerüst habe nutzt mir das wenig

So sieht das Ganze derzeit aus, natürlich sind die Angaben verfälscht

01.
@echo off  
02.
 
03.
rem ###Lala####  
04.
ping /n 1 xxx.xxx.xxx.xxx > nul  
05.
if errorlevel 1 goto nichtda1  
06.
echo "Lala - ONLINE!" > webcamreport_%date%_%time:~0,2%-00.txt  
07.
goto end1  
08.
:nichtda1  
09.
echo "Lala - NICHT online!"  > webcamreport_%date%_%time:~0,2%-00.txt  
10.
:end1  
11.
 
12.
rem ###Tralala####  
13.
ping /n 1 xxx.xxx.xxx.xxx > nul  
14.
if errorlevel 1 goto nichtda2  
15.
echo "Tralala - ONLINE!" >> webcamreport_%date%_%time:~0,2%-00.txt  
16.
goto end2  
17.
:nichtda2  
18.
echo "Tralala - NICHT online!" >> webcamreport_%date%_%time:~0,2%-00.txt  
19.
:end2  
20.
 
21.
rem ###Tütü####  
22.
ping /n 1 xxx.xxx.xxx.xxx > nul  
23.
if errorlevel 1 goto nichtda3  
24.
echo "Tütü - ONLINE!" >> webcamreport_%date%_%time:~0,2%-00.txt  
25.
goto ausgabe  
26.
:nichtda3  
27.
echo "Tütü - NICHT online!" >> webcamreport_%date%_%time:~0,2%-00.txt  
28.
:ausgabe  
29.
 
30.
 
31.
rem ##########################  
32.
 
33.
for /f "Tokens=*" %%i in ('find /I "NICHT" C:\Benutzer\lrrthcw\Desktop\WebcamDa\webcamreport_%date%_%time:~0,2%-00.txt^') do @set T=%%i  
34.
If "%T%" EQU "NICHT" goto :Exit  
35.
 
36.
goto :end  
37.
 
38.
:Exit  
39.
Echo.  
40.
Echo Mindestens eine Webcam ist offline!  
41.
Echo.  
42.
Pause  
43.
exit  
44.
 
45.
 
46.
rem ##########################  
47.
:end
Das gibt aber leider nicht das echo aus wenn ein nicht ist sondern wenn kein nicht ist. Zweitens wäre es schöner wenn ich die gesamte Zeile augegeben bekommen würde in der ein nicht ist.

LG MCD
Bitte warten ..
Mitglied: Biber
08.02.2010 um 12:22 Uhr
Moin mc-doubleyou,

ich weiß nicht, was du willst... der batch macht doch alles, was du verlangst.
Works as designed, wie wir Biber sagen.

Eins der sprachlichen Missverständnisse zwischen dir und dem CMD-Interpreter in der FOR-Konstruktion ist die Zuweisung an die Variable %T%.
kann nicht klappen. Beispiel am CMD-Prompt:
01.
>for /f "tokens=*" %i in ("Tralala - NICHT online!") do @echo SET "T=%i" 
02.
SET "T=Tralala - NICHT online!"
--> wenn du die Variable %T% auf die ganze Zeile setzt, dann wird der Vergleich [If "%T%" EQU "NICHT" ...] eher selten von Erfolg gekrönt sein.
Mach doch statt der FOR-Konstruktion lieber "nur" ein Find/Findstr mit Abfrage des Errorlevels
01.
.... 
02.
find /I "NICHT" C:\Benutzer\lrrthcw\Desktop\WebcamDa\webcamreport_%date%_%time:~0,2%-00.txt && goto :ExitWebcamOffline 
03.
Goto :end  
04.
REM [Hier ginge auch ein "goto :eof" ohne Definition der Marke :eof]
Grüße
Biber
Bitte warten ..
Mitglied: pxxsxx
08.02.2010 um 12:46 Uhr
Tach,
mal ne blöde Frage: Du durchsuchst nur eine Datei... oder schnall ich grad was ned... kann auch sein.

01.
find /I "NICHT" C:\Benutzer\lrrthcw\Desktop\WebcamDa\webcamreport_%date%_%time:~0,2%-00.txt 
02.
If errorlevel == 0 goto exit 
oder auch

01.
type C:\Benutzer\lrrthcw\Desktop\WebcamDa\webcamreport_%date%_%time:~0,2%-00.txt | find /I "NICHT"  
02.
If errorlevel == 0 goto exit 
Gruß
Peter
Bitte warten ..
Mitglied: mc-doubleyou
08.02.2010 um 13:36 Uhr
@ biber

Erstmal danke, dein Skript arbeitet zwar aber leider immer noch verkehrt. Ich bekomme nur dann eine Meldung wenn alles OK ist und genau das will ich eben nicht sondern ich will eine Meldung wenn er ein NICHT findet. Achja da du eh einer der Skripter hier bist kannst vl auch schreiben wie ich die gesamte betroffene Zeile ausgeben kann?

LG MCD
Bitte warten ..
Mitglied: mc-doubleyou
08.02.2010 um 13:49 Uhr
@pxxsxx

Der Ansatz ist nett zumal schön kurz aber irgendwo muss ein pause rein weil ich sonst ja den Dateiinhalt nicht sehe auch wenn nicht gefunden wurde.

€dit: hab raus gefunden wo das pause hinkommen muss - thx
Bitte warten ..
Mitglied: pxxsxx
08.02.2010 um 13:56 Uhr
OK, dann eben so:

01.
type C:\Benutzer\lrrthcw\Desktop\WebcamDa\webcamreport_%date%_%time:~0,2%-00.txt | find /I "NICHT"  
02.
If %errorlevel% == 0 goto exit  
03.
 
04.
goto :eof  
05.
 
06.
:Exit  
07.
Echo.  
08.
Echo Mindestens eine Webcam ist offline!  
09.
Echo.  
10.
Pause  
11.
exit  
12.
 
So hast du alle Zeilen mit "NICHT" angezeigt und anhand der errorlevel-Abfrage bekommst du zusätzlich die Nachricht "Mindestens eine Webc...."

Bitte warten ..
Mitglied: Biber
08.02.2010 um 14:05 Uhr
@pxxsxx

Kleine Schönheitskorrektur bei der ERRORLEVEL-Überprüfung:
Entweder
If %errorlevel% == 0 goto :exit
[Also auf die %variable% prüfen mit der Syntax, die bei jeder %variable% gültig ist. Und dann wird EXAKT auf 0 verglichen]
-oder-
If NOT errorlevel 1 goto :exit
[ explizit mit der IF-Erweiterung "IF NOT ERRORLEVEL 1" --> wenn nicht ERRORLEVEL 1 oder höher, dann ist es 0]

So wie es oben steht ist es unzulässig gemischt [If errorlevel == 0 goto exit]

@mc-doubleyou
Dir werden alle Komplettzeilen angezeigt, die Find/FindStr durchlassen, weil sie ein "NICHT" enthalten.
Auch ohne FOR-Geraffel.

Grüße
Biber
Bitte warten ..
Mitglied: pxxsxx
08.02.2010 um 14:10 Uhr
Sorry,
Fehler meinerseits... wurde ausgebessert.

Gruß
Peter
Bitte warten ..
Mitglied: mc-doubleyou
08.02.2010 um 14:15 Uhr
Danke,

mit dem letzen Post bisschen anpassen läuft es nun perfekt.
Bitte warten ..
Mitglied: pxxsxx
08.02.2010 um 14:19 Uhr
Bitteschön, gern geschehen.

Immer dran denken:
Ziel ist Effizienz, das heißt so viel wie nötig, so wenig wie möglich. (oder auch KISS-Prinzip)

Gruß
Peter
Bitte warten ..
Mitglied: mc-doubleyou
09.02.2010 um 09:14 Uhr
ne kleinigkeit noch zu meinem ping skript oben das funktioniert erst nach 10 uhr gut ansonsten muss man das stunden format anpassen.
Bitte warten ..
Mitglied: Biber
09.02.2010 um 09:53 Uhr
Moin mc-doubleyou,

..skript oben das funktioniert erst nach 10 uhr
So etwas ist kein gültiger Abschlusskommentar im Bereich "Batch & Shell"

Es scheitert ja daran, dass ohne Umformatierung der Stunden ein "Leerzeichen im Dateinamen" der Logdatei wäre.
Das ließe sich natürlich abfagen, wenn der Logdateiname in Anführungszeichen wäre... aber der Name sieht ja dennoch Shice aus.

Und eine Umformatierung der Stunden ist ja auch kein Hexenwerk... der Dateiname braucht ja nur einmal aus der Uhrzeit %time% ermittelt werden.
Falls die %time% also " 9:37:23,22" geschlagen hätte und daraus für die Stundenanzeige im namen ein "09" werden soll.
01.
 
02.
>set "myhh=1%time:~0,2%" 
03.
## Jetzt wäre myhh=[1 9] bei einstelligen Stunden oder z.b. [114] bei zweistelligen Stunden wie 14h irgendwas 
04.
 
05.
>set "myhh=%myhh: =0%" 
06.
## jetzt ersetze ich etwaige Leerzeichen durch Ziffer 0 -->[1 9] wird zu [109]; [114] bleibt unverändert 
07.
 
08.
>set "myhh=%myhh:~-2%" 
09.
## und von der 109 oder 114 schneide ich mir jeweils die letzen beiden Ziffern ab. 
10.
> Set myhh 
11.
myhh=09
--> im Batch wird dann eimal am Anfang der Logdateiname gebildet
.... 
Set "myHH=... wie oben" 
Set "Logname=webcamreport_%date%_%myhh%.txt  " 
.... 
.... 
echo "Lala - ONLINE!" >%logname% 
Grüße
Biber
Bitte warten ..
Mitglied: mc-doubleyou
09.02.2010 um 16:21 Uhr
oder so:

set hour=%time:~0,2%
if %hour% LSS 10 set hour=0%time:~1,1%

MCD
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit Batch Zeilen aus TXT modifizieren
gelöst Frage von chef1568Batch & Shell4 Kommentare

Hallo zusammen, leider konnte ich mit den bisherigen Threads mein Problem bisher nicht lösen. Problemstellung: In einer Textdatei sind ...

Batch & Shell

Zeile mit Sonderzeichen in txt einfügen

gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

Batch & Shell

Letzte Zeile einer .txt in eine andere .txt ausschneiden per Batch

gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo zusammen, zu meinem obrigen Thema habe ich leider nur in Richtung löschen und nicht in Richtung ausschneiden etwas ...

Microsoft Office

Excel Tabellenblatt finden und Zeile kopieren

gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich möchte anhand von Buttons einen Zugang bzw. einen Abgang auf bestimmte Tabellenblätter kopieren. Die Tabellenblätter entsprechen der ...

Neue Wissensbeiträge
iOS
IOS 11.2.6 verfügbar
Information von sabines vor 2 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 16 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server38 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless15 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...