Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Batchfile Verbesserungsvorschlag

Frage Entwicklung Batch & Shell

Mitglied: 84075

84075 (Level 2)

08.07.2010 um 14:18 Uhr, 2756 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 ..
Ähnliche Inhalte
Batch & Shell
W32tm resync - ausführen in Batchfile mit den Windows Service Accout (6)

Frage von MatthiasPlc zum Thema Batch & Shell ...

Microsoft Office
Bestehende Office 2016 Installation per Batchfile um Programm erweitern (2)

Frage von erwin.t zum Thema Microsoft Office ...

Batch & Shell
gelöst Abfrage ob Daten eingegeben wurden (5)

Frage von Floki1 zum Thema Batch & Shell ...

E-Mail
Postfix sinnvolle Restriktionen (2)

Frage von Henere zum Thema E-Mail ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Routers & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Routers & Routing ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...