Batch-Script Ausgabe von Abhängigkeiten

KurantRubys

Legende
Thread Starter
Mitglied seit
26.08.2012
Beiträge
8.107
Ort
Maggus Königreich
Hi,
Ich bin grade im Rahmen meiner Ausbildung dabei n Script zu schreiben, mit dem Dienste automatisch beendet werden können die in einer .txt stehen und dann in eine CSV Datei schreiben ob der Dienst XX beendet wurde oder nicht. Allerdings sollen auch bei Diensten bei denen eine Abhängigkeit besteht die abhängigen Dienste mit in das Log geschrieben werden. Das loggen der angegebenen Dienste funktioniert soweit, ich weiß nur nicht wie ich die Abhängigkeiten mit erfassen soll. Also Name des Abhängigen Dienstes + Ja/Nein.

Der restliche Code sieht bis jetzt so aus:

Code:
echo off

for /F %%i in (C:\Users\Daniel\Desktop\Batch\Dienste.txt) do (
net stop /y %%i
if errorlevel = 0 if not errorlevel = 1 echo %%i, Ja >> C:\test.csv
if errorlevel = 1 echo %%i, Nein >> C:\test.csv
)

pause

Alternativ wäre natürlich auch die Ausgabe welche Dienste von dem zu beendenden abhängig sind mit in die CSV eintragen zu lassen. Allerdings fehlt mir dann ja die Info welcher davon auch beendet wurde.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
1) Warum Batch und nicht Powershell?
2) Nimm nicht net sondern sc, damit bekommst Du das hin. "sc EnumDepend <Dienstname>" gibt dir die Abhängigkeiten. Damit geht noch mehr, schau's Dir mal an.
 
Admin wills in Batch, ich hab allerdings auch nix dagegen mich in Powershell einzulesen. Danke für den Tipp mit sc, das hilft mir gewaltig weiter :wink:
 
So nächste Frage :fresse: Ich würde jetzt gern die Ausgabe von SC ENUMDEPEND zum Teil in eine Variable Übergeben. Als Übergabe direkt in die .CSV funktioniert das ganze wunderbar, nur bekomm ich das mit der Variable nicht hin. Zum Schluss sollen die Variablen miteinander verglichen werden um dann die Ausgabe in die CSV zu bestimmen.

Jetzt ist die Frage wie ich die Ausgabe dieses Befehls in eine Variable gespeichert bekomme
Code:
SC QUERY %%i | FIND /i "State"

Ich steh grade wahrscheinlich vor der Lösung und komm nur nicht drauf, so hatts schon mal nicht funktioniert
Code:
SET Dienstvorher=
SC QUERY %%i | FIND /i "State" > %Dienstvorher%

Bekomm ich das so in Batch überhaupt hin? Muss leider Batch sein da wir auch noch Kunden mit nem Win2k3 Server haben.
 
Zuletzt bearbeitet:
Könnt dem Kunden ja empfehlen Powershell zu installieren, gibt's auch für W2K3. ;)

Mach nicht mehr viel mit Batch aber den Output eines Befehls direkt in eine Variable zu bekommen war für mich immer extrem hässlich. Hab vll. einfach nicht gewusst wie es geht, aber erstens würde mich wundern wenn es so geht wie Du das vorhast ... und zweitens hab ich es im Endeffekt entweder vermieden oder wenn es gar nicht anders ding über den Trick gemacht, das in ein Textfile zwischenzuspeichern. Schön ist anders aber Batch ist halt alt und scheiße. ;)


image.php
 
Besten Dank noch mal, ich hab schon fast befürchtet das ich das so lösen muss. Liegt in Sachen Powershell weniger am Kunden sondern eher an meinem Admin. Ich muss sagen, je mehr ich mit Batch mache, desto mehr hasse ich es :fresse: Ich werd das mal so umsetzten und hoffen das es ihm so taugt.
 
Könnt dem Kunden ja empfehlen Powershell zu installieren, gibt's auch für W2K3. ;)

Mach nicht mehr viel mit Batch aber den Output eines Befehls direkt in eine Variable zu bekommen war für mich immer extrem hässlich. Hab vll. einfach nicht gewusst wie es geht, aber erstens würde mich wundern wenn es so geht wie Du das vorhast ... und zweitens hab ich es im Endeffekt entweder vermieden oder wenn es gar nicht anders ding über den Trick gemacht, das in ein Textfile zwischenzuspeichern. Schön ist anders aber Batch ist halt alt und scheiße. ;)


image.php

Jaja, die guten alten Batch-Dateien.
Ich kann hier leider nichts produktives beitragen, muss aber die Aussage von McGizmo feiern.:banana:

Batch ist hässlich. Ich nutze es auch nur noch für Minimal-Aktionen.
Wenn ich so sehe was meine Vorgänger alles damit gebaut haben (und noch heute bauen), wo sich drei Batches gegenseitig aufrufen... In der PowerShell ein Einzeiler.
 
Ja, kenne ich, die Batch-Rutsche. Batch ruft Batch auf ruft Batch auf ruft Batch auf ... Hier gab's auch so Spezialisten. Als ich da Teile übernommen habe saß ich Tage dran nachzuvollziehen was die Skripte machen, die haben zum Teil so kranke Dinge angestellt. Klar, man muss sich z.T. halt unfassbar verrenken für einfachste Dinge...
 
Zuletzt bearbeitet:
Sehr schön.

Hier noch was produktives:
(Dienst-Abfrage via Powershell)
Code:
Get-Service -DependentServices -RequiredServices
In Batch stehe ich auf dem Schlauch.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh