Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batchfile Verbesserungsvorschlag

Frage Entwicklung Batch & Shell

Mitglied: 84075

84075 (Level 2)

08.07.2010 um 14:18 Uhr, 2733 Aufrufe, 12 Kommentare

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.

01.
@echo off & setlocal 
02.
 
03.
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen: 
04.
 
05.
if "%servicename%"=="service1" goto start 
06.
if "%servicename%"=="service2" goto start 
07.
if "%servicename%"=="service3" goto start 
08.
 
09.
goto error 
10.
:start 
11.
sc \\server01 start %servicename% 
12.
sc \\server02 start %servicename% 
13.
sc \\server03 start %servicename% 
14.
PAUSE
Mitglied: LotPings
08.07.2010 um 14:36 Uhr
Hallo,
mir ist nicht klar wie so ein servicename respektive die zugehörigen Dateien examplarisch aussehen.

ansonsten kannst du Redundanz z.Bsp so reduzieren:

01.
@Echo off & Setlocal 
02.
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen: 
03.
For %%A in ("service1" "service2" "service3") Do if "%servicename%" EQU %%A Goto :start  
04.
 
05.
goto error 
06.
:start 
07.
For %%A in ( 01 02 03) Do sc \\server%%A start %servicename%
Grüß
LotPings
Bitte warten ..
Mitglied: 84075
08.07.2010 um 14:42 Uhr
also immer wenn ich einen neuen service einrichte muss ich folgendes machen:

1. service einrichten
2. das obige batch öffnen
3. service1,service2, service3 .... manuell eintragen

Die ganzen services liegen in den Verzeichnissen D:\services. Will einfach nur wenn ich das batch starte, das das skript dieses verzeichnis durchscannt und wenn ein neues verzeichnis drinliegt, das er dieses verzeichnis in meine batch nimmt also den namen des verzeichnisses wie z.b. (service1, service2, service3......)
Bitte warten ..
Mitglied: 60730
08.07.2010 um 14:51 Uhr
moin,

01.
rem status== ungetestet@echo off  
02.
setlocal 
03.
cls 
04.
echo Dienste: 
05.
dir d:\services /b /AD 
06.
SET /p servicename=Bitte geben Sie den Service ein den Sie starten wollen: 
07.
dir d:\services /S /AD |find /i "%servicename%" && goto start 
08.
rem oder 
09.
if exist "d:\services\%servicename%\" goto start 
10.
goto error 
11.
:start 
12.
sc \\server01 start "%servicename%" 
13.
sc \\server02 start "%servicename%" 
14.
sc \\server03 start "%servicename%" 
15.
PAUSE
Gruß
Bitte warten ..
Mitglied: LotPings
08.07.2010 um 14:56 Uhr
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
Bitte warten ..
Mitglied: Dani
08.07.2010 um 15:00 Uhr
@LotPings
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
Bitte warten ..
Mitglied: 84075
08.07.2010 um 15:52 Uhr
genau so wa habe ich gewollt))))))))
Bitte warten ..
Mitglied: LotPings
08.07.2010 um 16:12 Uhr
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:
01.
@echo off & SetLocal 
02.
Pushd D:\Service 
03.
Set Service="*" 
04.
Dir /B/AD %Service% |find /V /N ""|more 
05.
:loop 
06.
set "Num=" 
07.
set /P Num=Nummer des Service zum Starten : 
08.
if not defined Num Popd&goto :eof 
09.
for /f "tokens=1,* delims=[]" %%A in ( 
10.
  'Dir /B/AD %Service% ^|find /V /N ""^|find "[%Num%]"' 
11.
    ) do Call :StartService %%~nxB 
12.
Goto :loop 
13.
:StartService 
14.
For %%A in ( 01 02 03 ) Do sc.exe \\server%%A start %1
Edit Pfade und Dir angepasst.

Gruß
LotPings
Bitte warten ..
Mitglied: 84075
08.07.2010 um 16:24 Uhr
also wenn ich das bat benutze listet er mir alle Inhalte meiner Verzeichnisse auf die unter D:\Test\Service liegen?!?!
Bitte warten ..
Mitglied: LotPings
08.07.2010 um 16:40 Uhr
Pfade müsstest du eigentlich selber anpassen können

Gruß
LotPings
Bitte warten ..
Mitglied: 84075
08.07.2010 um 16:46 Uhr
oopps war ein tippfehler cool hat geklappt...

nun habe ich nen sync skript der mir dieses Verzeichnis auf beiden servern syncen soll....?!?!?!

01.
@echo off & setlocal 
02.
dir E:\services /b /AD 
03.
SET /p servicename=Bitte geben Sie den Service an der synchronisiert werden soll: 
04.
dir E:\services /S /AD | find /i "%servicename%"&& goto start 
05.
goto error 
06.
:start 
07.
 
08.
xcopy \\server02\E$\services "%servicename%" /D /s 
09.
xcopy \\sserver03\E$\services "%servicename%" /D /s 
10.
PAUSE
Bitte warten ..
Mitglied: 60730
08.07.2010 um 17:58 Uhr
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....?!?!?!

Hmmm...

wie war das noch beim copy Befehl?
befehl quelle ziel oder so?

Und warum sieht deine Zeile dann ganz andreas aus?
Bitte warten ..
Mitglied: 84075
09.07.2010 um 09:49 Uhr
sorry sorry))))) so nun tut´s)

01.
@echo off & setlocal 
02.
 
03.
echo dienste: 
04.
dir E:\services /b /AD 
05.
SET /p servicename=Bitte geben Sie den Service an der synchronisiert werden soll: 
06.
dir E:\services /S /AD | find /i "%servicename%"&& goto start 
07.
goto error 
08.
:start 
09.
 
10.
xcopy E:\services\"%servicename%"  \\server02\E$\services\"%servicename%" /D /s 
11.
xcopy E:\services\"%servicename%"  \\server03\E$\services\"%servicename%"  /D /s 
12.
PAUSE
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...