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

Echo in for-Schleife syntaktisch nicht richtig

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

28.06.2010 um 12:17 Uhr, 3575 Aufrufe, 9 Kommentare

Hallo zusammen,

ich möchte prüfen ob bei einem Server bestimmte Dienste gestartet sind. Dazu benutze ich eine for-Schleife die alle Dienste in der Datei Dienste.txt abarbeitet.
So sieht der Code-Schnipsel momentan aus:

01.
for /f %%i in (Dienste.txt) do ( 
02.
	for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do set Status=%%a  
03.
	if not %STATUS%==RUNNING @echo Dienst %%i		läuft nicht>>C:\TEMP\servercheck.log 
04.
)
Problem ist:

a) ich bekomme den Fehler: *@echo ist an dieser Stele syntaktisch nicht verarbeitbar*
b) ich hätte gerne noch die else-Funktion drin, also wenn der Dienst läuft, soll
01.
@echo Dienst %%i		OK>>C:\TEMP\servercheck.log
Kann mir hier kurz jemand aushelfen? Danke

Gruß
Larz
Mitglied: Ellerbrok
28.06.2010 um 12:57 Uhr
Musst Du nicht eher

01.
@echo off 
02.
for /f %%i in (Dienste.txt) do (  
03.
	for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do set Status=%%a   
04.
	if not %STATUS%==RUNNING echo Dienst %%i		läuft nicht>>C:\TEMP\servercheck.log  
05.
)
machen? Also OHNE das @?

Gruß,
Marcel
Bitte warten ..
Mitglied: kkboy94
28.06.2010 um 12:59 Uhr
Hallo

01.
@echo off & setlocal 
02.
for /f %%i in (Dienste.txt) do ( 
03.
for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do set Status=%%a 
04.
)  
05.
if not %STATUS%==RUNNING >>"C:\TEMP\servercheck.log" echo Dienst %%i läuft nicht & goto :end 
06.
>>"C:\TEMP\servercheck.log" echo Dienst %%i OK & goto :end 
07.
 
08.
:end 
09.
pause 
10.
goto :eof
So könnte es klappen.
Ich konnts nicht ausprobieren, da ich selbst keinen Server habe

MfG Karsten
Bitte warten ..
Mitglied: pcschrauber
28.06.2010 um 14:23 Uhr
Hallo,

meiner Meinung nach muss es in etwa so aussehen
01.
for /f %%i in (Dienste.txt) do ( set Dienst=%%i 
02.
	for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do set STATUS=%%a 
03.
		call :checkit 
04.
05.
goto :end 
06.
 
07.
:checkit 
08.
if not x%STATUS%==xRUNNING @echo Dienst %Dienst%		läuft nicht>>c:\TEMP\servercheck.log  
09.
goto :eof 
10.
:end 
11.
pause
Das Problem das du beschreibst kommt daher das mit "SET" gesetzte Variablen nicht in der gleichen for-Schleife verarbeitbar sind. Warum? Keine Ahnung !
Ich würde dir aber WMI ans Herz legen ... ist um Welten schneller und flexibler.

achso und durch die x'e in der if Abfrage fängt man leere Variablen ab. und das @ unterdrückt nur den Bildschirmausdruck .. nicht aber die Umleitung in die log-Datei

ich hoffe das ich helfen konnte
MFG Tino
Bitte warten ..
Mitglied: Larz
28.06.2010 um 14:47 Uhr
Hi Marcel,

nein, das @ ist hier nicht relevant. Geht auch ohne nicht...

Gruß Larz
Bitte warten ..
Mitglied: BigWim
28.06.2010 um 14:57 Uhr
Das Problem das du beschreibst kommt daher das mit "SET" gesetzte Variablen nicht in der gleichen for-Schleife verarbeitbar sind. Warum? Keine Ahnung !

Dann möchte ich mal einen Tipp weiterreichen, der das erklärt. Ich wußte gar nicht, wie wenig ich über Batch Beschweid weiß


Zitat von bastla:
Hallo Markus!

Meine Beispiele sind in vielen Fällen nix anderes als Anwendung der von
Biber in seinen Kommentaren und natürlich
Tutorials vermittelten Grundlagen (und Feinheiten) ...

Grüße
bastla


Markus
Bitte warten ..
Mitglied: Larz
28.06.2010 um 15:02 Uhr
Hi Karsten,

das klappt leider nicht ganz, es erscheint im Log nur einmal der Hinweis "Dienst %i OK", egal ob der Dienst läuft oder nicht...
Kannst Du ja aber auch mit dem eigenen PC testen. Anstatt LTTFS06 einfach den eigenen PC-Namen angeben

Gruß
Lars
Bitte warten ..
Mitglied: Biber
28.06.2010 um 15:16 Uhr
...und falls heute bei der Wärme keiner Lust hat zum Batch-Tutorials-Lesen, dann noch ein Tipp zur gezielten Stichwortsuche..

Suche nach "DelayedExpansion" (hier über die Forumssuche oder bei SetLocal /? am CMD-Prompt.

Aber im Prinzip ist der Ansatz von pcschrauber durchaus praktkabel:
01.
for /f %%i in (Dienste.txt) do (  
02.
	for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do 	call :checkit %%i %%a 
03.
04.
goto :eof 
05.
 
06.
:checkit Parameter1=Dienst Parameter2=Status 
07.
if  /i "%2" NEQ "RUNNING" @echo Dienst %1 läuft nicht - Status ist %2 >>c:\TEMP\servercheck.log  
08.
goto :eof 
09.
 
10.
pause
So ginge es ganz ohne SET und ohne SetLocal EnableDelayedExpansion.
Ggf natürlich noch ergänzt um eine Zeile für "Dienst läuft und das soll auch ins Log" und/oder %date%/%time% und Servernamen.

Grüße
Biber
P.S. Aber das Tut-Lesen bei schlechtem Wetter nachholen!
Bitte warten ..
Mitglied: pcschrauber
28.06.2010 um 15:18 Uhr
Zitat von BigWim:
Dann möchte ich mal einen Tipp weiterreichen, der das erklärt. Ich wußte gar nicht, wie wenig ich über Batch
Beschweid weiß

Sollte es doch gehen, bitte ich darum diesen Satz aus dem Kopf zu streichen.
Und eigentlich benutze ich lieber WMI(VBS) und BATCH nur da, wo es gar nicht anders geht. (war aber nicht immer so )
Bitte warten ..
Mitglied: Larz
28.06.2010 um 16:22 Uhr
Hi Biber,

bei mir funktioniert diese Variante, danke! Hab das jetzt so in meine bat eingebaut:

01.
@echo __________________________________________________________>>C:\TEMP\servercheck.log 
02.
@echo Prüfe Status einzelner Dienste auf LTTFS06>>C:\TEMP\servercheck.log 
03.
@echo __________________________________________________________>>C:\TEMP\servercheck.log 
04.
 
05.
for /f %%i in (LTTFS06_Dienste.txt) do (  
06.
	for /f "tokens=4"  %%a in ('sc \\LTTFS06 query %%i ^| find "STATE"') do 	call :checkit %%i %%a 
07.
08.
goto :eof 
09.
 
10.
:checkit Parameter1=Dienst Parameter2=Status 
11.
if  /i "%2" NEQ "RUNNING" @echo Dienst %1 läuft nicht - Status ist %2 >>c:\TEMP\servercheck.log 
12.
goto :eof
Hab unter die vorletzte Zeile noch ein
01.
if  /i "%2" EQ "RUNNING" @echo Dienst %1 läuft - Status ist %2 >>c:\TEMP\servercheck.log
eingesetzt


Danke & Gruß
Larz


P.S. : Tutorials lesen bei schlechtem Wetter wird nachgeholt (bzw. wiederholt )
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Syntaktischer Fehler in For-Schleife
gelöst Frage von CopyPasteBatch & Shell14 Kommentare

Hallo, ich hoffe, ihr könnt mir hier auf die Sprünge helfen. Ich schreibe relativ viele Batchscripte um mir die ...

Batch & Shell
Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen?
gelöst Frage von PedantBatch & Shell9 Kommentare

Hallo, hier geht es um eine Verständnisfrage. Warum funktioniert das echo in der for-Schleife auch mit Sonderzeichen? Vorab echo ...

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 ...

Batch & Shell
FOR Schleife mit LOOP und nachfolgender FOR Schleife
gelöst Frage von miczarBatch & Shell6 Kommentare

Hallo zusammen, ich habe ein Problem mit einem Batchfile. Situation: im Netzwerk ist kein WINS mehr vorhanden und so ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 39 MinutenVerschlüsselung & Zertifikate

Interessant SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...