@echo off
@cls

set CurCmdRoot_DP=%~dp0
set CurCmdRoot_DP=%CurCmdRoot_DP:~0,-1%
call :PathCutLastDir AppRoot_LP %~dp0
set path=%CurCmdRoot_DP%;%AppRoot_LP%\03-BinPublic;%AppRoot_LP%\03-BinPublic\PsTools;%Path%

rem feststellen ob eine TS Session aktive ist
rem set isTsSession=false
rem if /I "%SESSIONNAME:~0,4%"=="RDP-" set isTsSession=true
rem call :ConnectNetUnc "MyNetWorkVmware XX" . \\XX-VMW2000\D XX-VMW2000\Administrator yz

Set MyTitle=JobServer Autostart Stript Bizerba

title %MyTitle%
Echo %MyTitle%
Echo ------------------------------------------------------------------


rem if "%isTsSession%"=="true" call :InfoNichtInTsSession& goto :eof

if /i "%ComputerName%"=="JobServer1" call :Prod&   goto :eof

Echo Info dieses Script:
Echo %0
Echo.
Echo ist nicht fuer diesen Rechner \\%ComputerName% vorgesehen
Echo  ^|--^> Script wird beendet
Echo  ^|--^> Info es wurden keine Aktionen ausgefuehrt
Echo.
goto :eof

:InfoNichtInTsSession
 Echo Info dieses Script:
 Echo %0
 Echo.
 Echo diese script darf !!NICHT!! in einer "Terminal Session" ausgefuehrt werden
 Echo  ^|--^> Script wird beendet
 Echo  ^|--^> Info es wurden keine Aktionen ausgefuehrt
 Echo.
 pause
 exit
 goto :eof


rem Doku
rem Task Time
rem [WD=* TP=05:00][WD=* TP=06:00][WD=* TP=08:00][WD=* TP=09:15][WD=* TP=10:15][WD=* TP=11:15][WD=* TP=12:15][WD=* TP=13:15][WD=* TP=14:15][WD=* TP=15:15] [WD=* TP=16:15] [WD=* TP=17:15] [WD=* TP=18:15][WD=* TP=20:15][WD=* TP=22:15]

rem -- Start PROD System ------------------------------------------------
:Prod

 rem beendet den JobServer
 call :JobServerBeenden "WINDOWTITLE eq JS [PROD]*"

 set toRun=call "%AppRoot_LP%\01-BinServer\JobManagerStart.cmd" /Server /ServerSettingsXML PROD /AutoStart TaskSheduler:On
 Echo 1. Start TaskSheduler
 call :Wait 10
 %toRun%

 set toRun=call "%AppRoot_LP%\01-BinServer\JobManagerStart.cmd" /Server /ServerSettingsXML PROD /AutoStart JobContol:M
 Echo 2. Start JobControl
 call :Wait 10
 %toRun%
 goto :eof



:JobServerBeenden

 set JobServerExe_NE=JobServer.Exe
 set JobServerWinTitle=%1
 set toRun=TASKKILL /F /FI %JobServerWinTitle% /T /IM %JobServerExe_NE%
 Echo beenden alle laufenden Prozesse von [%JobServerExe_NE%] mit Title: %JobServerWinTitle%
 call :Wait 10
 %toRun%
 goto :eof

rem ##### ------------ Standard Subroutines --------------------- ######
:PathCutLastDir
 rem schneidet das letzte Verzeichniss Uebergeben path ab
 rem P1 = Name der Variablen
 rem P2 = der Übergebene Path
 rem Example : call :PathCutLastDir AppRoot_LP %~dp0
 rem Example : call :PathCutLastDir MyVar %~dp0

 set PathCutLastDir$temp=%2
 set PathCutLastDir$tempLastChar=%PathCutLastDir$temp:~-1%
 set PathCutLastDir$tempNoBacks=%PathCutLastDir$temp:~0,-1%

 if "%PathCutLastDir$tempLastChar%"=="\" (
   rem "\" abschneiden wenn vorhanden
   call :PathCutLastDirDo PathCutLastDir$tempRes %PathCutLastDir$tempNoBacks%
 ) else (
   rem
   call :PathCutLastDirDo PathCutLastDir$tempRes %PathCutLastDir$temp%
 )
 set PathCutLastDir$tempRes=%PathCutLastDir$tempRes:~0,-1%
 set %1=%PathCutLastDir$tempRes%
 set PathCutLastDir$temp=
 set PathCutLastDirDo$temp1=
 set PathCutLastDir$tempNoBacks=
 set PathCutLastDir$tempNoLastChar=
 set PathCutLastDir$tempLastChar=
 set PathCutLastDir$tempRes=
 goto :eof

:PathCutLastDirDo
 rem hiermit schneiden wir den Path ab
 rem echo.
 rem Echo P1=%1 P2=%2
 set PathCutLastDirDo$temp=%~dp2
 rem "\" abschneiden
 set PathCutLastDirDo$temp1=%PathCutLastDir$temp:~0,-1%
 set %1=%PathCutLastDirDo$temp%
 set PathCutLastDirDo$temp=
 set PathCutLastDirDo$temp1=
 goto :eof

rem --------------------------------------------------------------------
:ConnectNetUnc
 setlocal
 set Beschreibung=%1
 set LW=%2
 set UNC=%3
 set Us=%4
 set Pw=%5
 Echo ------------------------------------
 Echo Verbinde   : %Beschreibung%
 Echo Laufwerk   : %LW%
 Echo zu UNC     : %UNC%
 Echo via User   : %US%

 if     "%LW%"=="." goto LWNo
 if not "%LW%"==""  goto LWYes

 :LWno
   net use %UNC% /user:%US% %Pw%>nul
   if not exist %UNC% Echo - Error    : UNC %UNC% konnte nicht verbunden werden & Pause
   if     exist %UNC% Echo ++OK       : UNC %UNC% konnte erfogreich verbunden werden
   goto :ConnectNetUncEnd

 :LWYes
   if exist %LW% Echo Info Lw    : %LW% bereits vorhanden diese zunaechst getrennt& net use %LW% /d /y>nul
   net use %LW% %UNC% /user:%US% %Pw%>nul
   if not exist %LW%  Echo - Error    : Laufwerk %LW% konnte !!NICHT!! mit %UNC% verbunden werden & Pause
   if     exist %LW%  Echo + OK       : Laufwerk %LW% mit %UNC% erfogreiche verbunden
   goto :ConnectNetUncEnd

 :ConnectNetUncEnd
  endlocal

 goto :eof

rem --------------------------------------------------------------------
:Wait
 set waitTime=2
 if not "%1"=="" set waitTime=%1
 CHOICE /C:w /N /T:w,%waitTime% warte %waitTime% [sec] oder "w" fuer weiter druecken.
 goto :eof
