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, 3767 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
Backup
Find-Befehl - Es hakt gerade
Frage von it-fraggleBackup1 Kommentar

Vielleicht sollte ich endlich schlafen gehen, aber DAS muss ich noch zuende machen. Wo ist der Fehler? In /media/backups/ ...

Debian

Find: sys kernel debug Permission denied

Frage von vikozoDebian

guten Tag ich habe unter Proxmox ein LXC Container erstellt Linux prox1 4.4.15-1-pve (gcc version 4.9.2 (Debian 4.9.2-10) wenn ...

Batch & Shell

Nonsense Error - find ihn nicht. (Batch)

gelöst Frage von clragonBatch & Shell7 Kommentare

Hey Leute! Ich bin's wieder. Heute habe ich ein besonders unnötiges Problem,. Aus irgendeinem Grund hat dieses Script einen ...

Linux

Find Ausgabe in formatierte text Datei umleiten

gelöst Frage von MadM4xLinux5 Kommentare

Nabend, lese mich gerade ein wenig im Umgang mit dem Find Befehl ein und bräucht mal Hilfe. Und zwar ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 1 TagSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 2 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Glasfaserkabel verlegen und Anschlüsse setzen
Frage von LLL0rdLAN, WAN, Wireless21 Kommentare

Hallo Leute, ich muss demnächst ein Netzwerkkabel auf einer Länge von ca. 70 Metern verlegen. Das Netzwerkkabel soll dabei ...

Windows Server
Mac Rechner im Windows Netzwerk - was jetzt?
gelöst Frage von Kopfg3ldWindows Server18 Kommentare

Hallo zusammen, ich habe folgende Herausforderungen. Aber erst mal was kurz zum Netzwerk - Windows Server (ältester ist ein ...

Datenbanken
MySQL Schleife in Stored Procedure
Frage von facebrakerDatenbanken15 Kommentare

Hallo, ich bin gerade echt am grübeln. Ich habe in meiner DB, bestimmte Zeiträume gespeichert. z.B. User_ID ; von ...

Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...