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 FOR-Schleife liest Werte nur bis zum ersten Leerzeichen ein

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

08.07.2010 um 16:43 Uhr, 4089 Aufrufe, 12 Kommentare

Hallo zusammen,

ich habe ein Scipt, dass aus einer Textdatei Zeilenweise den Namen von Diensten ausliest und deren Status prüft:

01.
set SERVERNAME=Server1 
02.
 
03.
@echo __________________________________________>>"%LogfilePath%\servercheck.log" 
04.
@echo DIENSTE AUF %SERVERNAME%>>"%LogfilePath%\servercheck.log" 
05.
@echo.>>"%LogfilePath%\servercheck.log" 
06.
for /f %%i in (%SERVERNAME%_Dienste.txt) do (  
07.
	for /f "tokens=4" %%a in ('sc \\%SERVERNAME% query %%i ^| find "STATE"') do 	call :checkit %%i %%a 
08.
09.
goto :eof 
10.
:checkit Parameter1=Dienst Parameter2=Status 
11.
if  /i "%2" NEQ "RUNNING" @echo %1 		%2 >>"%LogfilePath%\servercheck.log" 
12.
if  /i "%2" EQU "RUNNING" @echo %1		%2 >>"%LogfilePath%\servercheck.log" 
13.
goto :eof 
14.
echo. 
15.
echo. 
16.
echo.
Jetzt ist es so dass es einen Dienst gibt, der dummerweise "Object Store Sowieso 6.0" heißt.
Das Script liest mir immer nur "ObjectStore" als Dienstnamen aus und findet dazu natürlich nichts.
Nun habe ich versucht mit dem Zusatz
01.
delims=
dem Script beizubringen, dass er das Leerzeichen nicht als Ende betrachten soll. Oder bin ich da falsch gewickelt??

Danke für eure Hilfe

Gruß
Larz
Mitglied: Dani
08.07.2010 um 16:47 Uhr
Hi Larz,
eine unwichtige Sache: Kannst du uns noch verraten wie eine solche Zeile aussieht? Meine Glaskugel hat schon Wochenende!


Grüße,
Dani
Bitte warten ..
Mitglied: bastla
08.07.2010 um 16:49 Uhr
Hallo Larz!

Da
Oder bin ich da falsch gewickelt??
vermutlich nicht ganz die gewünschte Antwort bringen dürfte , schließe ich mich Danis Frage an ...

Vorsorglich würde ich aber den "sc"-Teil so schreiben:
sc \\%SERVERNAME% query "%%i"
Grüße
bastla
Bitte warten ..
Mitglied: Larz
08.07.2010 um 16:58 Uhr
Hi Dani,

eine Zeile heißt z.B.

>ObjectStore Sowieso 6.0

Gruß
Lars
Bitte warten ..
Mitglied: Biber
08.07.2010 um 16:59 Uhr
[OT]
Moin Larz,

wenn ich so deine Zeilen 13-16 betrachte drängt sich mir die Vermutung auf, dein Cheffe bezahlt dich nach Programmzeilen? *gg

Zeile 14-16 sind wirklich unerreichbar gut ....

...ansonsten bist du ja schon in guten Händen...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: Dani
08.07.2010 um 17:06 Uhr
Das Problem wird wohl sein, dass die FOR-Schleife als Standardtrennzeichen das Leerzeichen nimmt wenn nicht anders angeben. Sprich du musst die Parameter in deiner Schleife anpassen:
01.
for /f "tokens=4 delims=" %%a in ('sc \\%SERVERNAME% query %%i ^| find "STATE"') do call :checkit %%i %%a

Grüße,
Dani
Bitte warten ..
Mitglied: bastla
08.07.2010 um 17:13 Uhr
@Dani
Des Weiteren ist der : bei checkIT zu viel. Du möchtest zur Sprungmarke springen und keine an dieser Stelle erzeugen.
Einspruch! "call" braucht die vollständige Sprungmarke inkl ":" ...

Grüße
bastla
Bitte warten ..
Mitglied: Dani
08.07.2010 um 17:17 Uhr
@bastla
Right... ich blick's bald nicht mehr vor lauter Programmiersprachen. Hab's verbessert...


Grüße,
Dani
Bitte warten ..
Mitglied: Larz
08.07.2010 um 18:59 Uhr
Hoi Biber,

freut mich, wenn meine Zeilen für ein Schmunzeln sorgen
Im Ernst - mein Chef bezahlt mir dafür gar nichts, das mach ich nebenher weil ich nich alles per Hand machen will, aber ok, 14 bis 16 sind bei näherer Betrachtung echt schwachsinnig, kommt aus dem Bereich "Den Wald vor lauter Bäumen nicht..." - das gesamte Script ist historisch gewachsen...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
09.07.2010 um 07:38 Uhr
Hallo Dani,

das war auch mein erster Ansatz - aber da es nicht funktioniert hatte, habe ich es verworfen (ich war der Meinung ich hätte es falsch gemacht).
Habe deine Zeile 1 zu 1 kopiert, klappt leider dennoch nicht. Er macht aus "OBjectStore Sowieso 6.0" wieder nur "ObjectStore"...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
09.07.2010 um 07:39 Uhr
Moin Bastla,

die "" bringen leider keine Verbesserung...

Gruß
Larz
Bitte warten ..
Mitglied: bastla
09.07.2010 um 09:21 Uhr
Hallo Larz!

Also bei mir erzeugt
01.
@echo on & setlocal 
02.
set SERVERNAME=Server1 
03.
 
04.
@echo __________________________________________>>"%LogfilePath%\servercheck.log" 
05.
@echo DIENSTE AUF %SERVERNAME%>>"%LogfilePath%\servercheck.log" 
06.
@echo.>>"%LogfilePath%\servercheck.log" 
07.
for /f "delims=" %%i in (%SERVERNAME%_Dienste.txt) do (  
08.
	for /f "tokens=4" %%a in ('sc \\%SERVERNAME% query "%%i" ^| find "STATE"') do 	call :checkit "%%i" %%a 
09.
10.
goto :eof 
11.
:checkit Parameter1=Dienst Parameter2=Status 
12.
if  /i "%2" NEQ "RUNNING" @echo %1 		%2 >>"%LogfilePath%\servercheck.log" 
13.
if  /i "%2" EQU "RUNNING" @echo %1		%2 >>"%LogfilePath%\servercheck.log" 
14.
goto :eof
folgenden Ablauf (der zumindest hinsichtlich der eigentlichen Fragestellung für mich vernünftig aussieht):
D:\TEMP>set SERVERNAME=Server1 
 
D:\TEMP>for /F "delims=" %i in (Server1_Dienste.txt) do (for /F "tokens=4" %a in 
 ('sc \\Server1 query "%i" | find "STATE"') do call :checkit "%i" %a ) 
 
D:\TEMP>(for /F "tokens=4" %a in ('sc \\Server1 query "ObjectStore Sowieso 6.0" 
| find "STATE"') do call :checkit "ObjectStore Sowieso 6.0" %a ) 
 
D:\TEMP>goto :eof
Bitte beachten: Auch bei der Übergabe von "%%i" als Parameter werden die Anführungszeichen benötigt, da bei Leerzeichen in "%%i" der Wert von "%%a" nicht als %2 im Unterprogramm ankommt ...

Grüße
bastla
Bitte warten ..
Mitglied: Larz
12.07.2010 um 12:40 Uhr
Hoi bastla,

das war's! Super, danke. Diese elenden "" immer...

Gruß
Larz
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
For-Schleife Leerzeichen in Pfadangabe
gelöst Frage von goodbytesBatch & Shell3 Kommentare

Hallo, mittels For-Schleife sollen zeilenweise Pfadangaben aus einer txt-Datei geholt werden und damit was abgearbeitet werden. Ist ja soweit ...

Batch & Shell

Mehrere Werte aus FOR Schleife in eine Variable

gelöst Frage von sugramBatch & Shell4 Kommentare

Hallo Also ich komm einfach nicht weiter. Folgendes Problem. Meine aktueller String lautet so: Das Funktioniert auch. Nur ist ...

Batch & Shell

Leerzeichen aus Zeichenfolge entfernen mit Batch FOR f Schleife

gelöst Frage von gexnerBatch & Shell2 Kommentare

Hallo! Ich möchte aus einer Zeichenfolge alle Leerstellen, egal ob vorne hinten oder in der Mitte, entfernen. In Anlehnung ...

Batch & Shell

Batch Schleife als FOR-SCHLEIFE

gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement13 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android11 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...