
84075
08.07.2010
Batchfile Verbesserungsvorschlag
Servus Leute,
ich habe folgendes Skript das mir meine Services startet nachdem ich diese eingerichtet habe. Was mich nur stört ist das ich den neu eingerichteten Service immer ins Batchfile eintragen muss damit dieser dann beim Aufruf läuft. Es handelt sich dabei um Lizenzservices - deren Vendor Daemons und Lizenzfiles liegen auf allen drei Servern imm unter dem gleichen Pfad D:\services. Kann man das Skript so umschreiben daser dieses Verzeichnis beim start durchsucht und alle Verzeichnisse/Services die unter D:\services liegen dann selber ins batch einträgt?!?! SPRICH: ich will nicht immer das batch öffnen müssen und den neu eingerichteten Service manuell eintragen.
ich habe folgendes Skript das mir meine Services startet nachdem ich diese eingerichtet habe. Was mich nur stört ist das ich den neu eingerichteten Service immer ins Batchfile eintragen muss damit dieser dann beim Aufruf läuft. Es handelt sich dabei um Lizenzservices - deren Vendor Daemons und Lizenzfiles liegen auf allen drei Servern imm unter dem gleichen Pfad D:\services. Kann man das Skript so umschreiben daser dieses Verzeichnis beim start durchsucht und alle Verzeichnisse/Services die unter D:\services liegen dann selber ins batch einträgt?!?! SPRICH: ich will nicht immer das batch öffnen müssen und den neu eingerichteten Service manuell eintragen.
@echo off & setlocal
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen:
if "%servicename%"=="service1" goto start
if "%servicename%"=="service2" goto start
if "%servicename%"=="service3" goto start
goto error
:start
sc \\server01 start %servicename%
sc \\server02 start %servicename%
sc \\server03 start %servicename%
PAUSE
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146507
Url: https://administrator.de/forum/batchfile-verbesserungsvorschlag-146507.html
Ausgedruckt am: 01.05.2025 um 16:05 Uhr
12 Kommentare
Neuester Kommentar

Hallo,
mir ist nicht klar wie so ein servicename respektive die zugehörigen Dateien examplarisch aussehen.
ansonsten kannst du Redundanz z.Bsp so reduzieren:
Grüß
LotPings
mir ist nicht klar wie so ein servicename respektive die zugehörigen Dateien examplarisch aussehen.
ansonsten kannst du Redundanz z.Bsp so reduzieren:
@Echo off & Setlocal
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen:
For %%A in ("service1" "service2" "service3") Do if "%servicename%" EQU %%A Goto :start
goto error
:start
For %%A in ( 01 02 03) Do sc \\server%%A start %servicename%
Grüß
LotPings

moin,
Gruß
rem status== ungetestet@echo off
setlocal
cls
echo Dienste:
dir d:\services /b /AD
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen:
dir d:\services /S /AD |find /i "%servicename%" && goto start
rem oder
if exist "d:\services\%servicename%\" goto start
goto error
:start
sc \\server01 start "%servicename%"
sc \\server02 start "%servicename%"
sc \\server03 start "%servicename%"
PAUSE
Gruß

Das war keine sehr hilfreiche Antwort 
DU weist also was DU gemacht hast, aber woher soll die Batch das wissen?
Du könntest die bekannten Serviceses in einer Datei festhalten und unbekannte starten, oder das Einrichten gleich mit über die Batchdatei starten,
aber hey deine Abläufe kennst du selber am Besten.
Gruß
LotPings
DU weist also was DU gemacht hast, aber woher soll die Batch das wissen?
Du könntest die bekannten Serviceses in einer Datei festhalten und unbekannte starten, oder das Einrichten gleich mit über die Batchdatei starten,
aber hey deine Abläufe kennst du selber am Besten.
Gruß
LotPings
@77559
Indirekt hat er eine Antwort gegeben... ich übersetze mal:
Er möchte gerne die Batch so umbauen, dass er nicht mehr manuell die Dienste (Services) in die Batch eintragen muss sondern, dass die Batch in Zukunft das Verzeichis "D:\Services" ausliest du für jeden Wert die 3 SC-Befehle ausführt.
Grüße,
Dani
Indirekt hat er eine Antwort gegeben... ich übersetze mal:
Er möchte gerne die Batch so umbauen, dass er nicht mehr manuell die Dienste (Services) in die Batch eintragen muss sondern, dass die Batch in Zukunft das Verzeichis "D:\Services" ausliest du für jeden Wert die 3 SC-Befehle ausführt.
Grüße,
Dani

Das ist ja noch immer nicht automatisch,
aber wenn es mit möglichst wenig Eingaben auskommen soll - hier eine Version mit numeriertem Menu,
jetzt brauchst du nur noch eine Nr eingben und Enter drücken:
Edit Pfade und Dir angepasst.
Gruß
LotPings
aber wenn es mit möglichst wenig Eingaben auskommen soll - hier eine Version mit numeriertem Menu,
jetzt brauchst du nur noch eine Nr eingben und Enter drücken:
@echo off & SetLocal
Pushd D:\Service
Set Service="*"
Dir /B/AD %Service% |find /V /N ""|more
:loop
set "Num="
set /P Num=Nummer des Service zum Starten :
if not defined Num Popd&goto :eof
for /f "tokens=1,* delims=" %%A in (
'Dir /B/AD %Service% ^|find /V /N ""^|find "[%Num%]"'
) do Call :StartService %%~nxB
Goto :loop
:StartService
For %%A in ( 01 02 03 ) Do sc.exe \\server%%A start %1
Edit Pfade und Dir angepasst.
Gruß
LotPings

Pfade müsstest du eigentlich selber anpassen können 
Gruß
LotPings
Gruß
LotPings

Zitat von @84075:
oopps war ein tippfehler
cool hat geklappt...
nun habe ich nen sync skript der mir dieses Verzeichnis auf beiden servern syncen soll....?!?!?!
oopps war ein tippfehler
nun habe ich nen sync skript der mir dieses Verzeichnis auf beiden servern syncen soll....?!?!?!
Hmmm...
wie war das noch beim copy Befehl?
befehl quelle ziel oder so?
Und warum sieht deine Zeile dann ganz andreas aus?