@echo off rem Variablen nur temporär behalten, Fenstergröße anpassen, Installerversion setzen, Laufzeitpfad auf den Dateipfad setzen, Log vorbereiten. SETLOCAL mode con: lines=30 cols=130 set "Installerversion=1.0" cd %~dp0 >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo ##################NEW LOG################## >>"%userprofile%\Desktop\%~n0.log" echo Timestamp: %date% %time% rem ende rem Umlautkomptiblität chcp 1252 > nul set ae=ä set ue=ü set oe=ö chcp 850 > nul rem ende rem Installationssprache des Windows Betriebssystems bekommen, bei deutsch auf das script auf Deutsch umstellen set "LANG_warning=Warning:" set "LANG_error=Error:" set "LANG_hard_error=ERROR" set "LANG_wrong_value=Wrong value. Only ^"y^" or ^"n^" is allowed!" set "LANG_noadmin=Running without administrator privileges." set "LANG_permissions=No or insufficient write permissions on ^"%~dp0^"!" set "LANG_c4u_missing=Update file is missing." set "LANG_c4group_missing=c4group.exe is missing. Wrong directory?" set "LANG_taskkill_execution=All still running clonk instances will be quit." set "LANG_task_not_running=Process ^"clonk.exe^" not running." set "LANG_starting_update_c4group.exe=Starting the update: c4group.exe... " set "LANG_starting_update_clonk.exe=Starting the update: clonk.exe (Here should be no more error message)... " set "LANG_screenshot=In case of problems please take a screenshot of this window and show it when asking for help" set "LANG_log1=A log file was created on desktop under ^"%userprofile%\Desktop\%~n0.log^"." set "LANG_log2=Do you want to keep it? (y/N): " set "LANG_log_deleted=Log deleted." set "LANG_error_help1=Need help?" set "LANG_error_help2=Visit the forum on https://forum.clonkspot.org (register via https://clonkspot.org/mwforum/user_register.pl)" set "LANG_error_help3=Chat with us on #legacyclonk on euIRC http://webchat.euirc.net/?channels=#legacyclonk" for /F "tokens=2* skip=2 usebackq" %%f in (`reg query "HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Nls\Language" /v "InstallLanguage"`) do @set InstallLanguage=%%g>nul if "%InstallLanguage%" == "0407" ( set "LANG_warning=Warnung:" set "LANG_error=Fehler:" set "LANG_hard_error=FEHLER" set "LANG_wrong_value=Ung%ue%ltiger Wert. Nur ^"j^" und ^"n^" ist erlaubt" set "LANG_noadmin=Ausf%ue%hrung ohne Adminrechte." set "LANG_permissions=Keine oder fehlerhafte Schreibrechte in ^"%~dp0^"!" set "LANG_c4u_missing=Update-Datei fehlt." set "LANG_c4group_missing=c4group.exe fehlt. Falscher Ordner?" set "LANG_taskkill_execution=Alle noch offenen Clonk-Instanzen werden beendet." set "LANG_task_not_running=Prozess ^"clonk.exe^" l%ae%uft nicht." set "LANG_starting_update_c4grou=Starte Aktualisierung: c4group.exe... " set "LANG_starting_update_clonk=Starte Aktualisierung: clonk.exe (Hier sollten keine weiteren Fehlermeldungen mehr erscheinen.)... " set "LANG_finished_update=Aktualisierung abgeschlossen! Bei Problemen bitte einen Screenshot von diesem Fenster machen und bei Hilfsanfragen herzeigen." set "LANG_log1=Eine Logdatei wurde auf dem Desktop unter ^"%userprofile%\Desktop\%~n0.log^" erstellt." set "LANG_log2=Soll diese behalten werden? (j/N): " set "LANG_log_deleted=Log gel%oe%scht." set "LANG_error_help1=Brauchst du Hilfe?" set "LANG_error_help2=Besuche das Forum unter https://forum.clonkspot.org (Registrierung unter https://clonkspot.org/mwforum/user_register.pl)" set "LANG_error_help3=Chatte mit uns im Channel #legacyclonk auf dem euIRC http://webchat.euirc.net/?channels=#legacyclonk" ) rem ende rem Adminrechte prüfen set "mode=admincheck" for /f "tokens=1,2*" %%s in ('bcdedit') do set STRING=%%s if (%STRING%)==(Zugriff) ( echo %LANG_warning% %LANG_noadmin% set "admin=NO" pause echo. ) else ( set "admin=YES" ) rem Schreibrechte prüfen, wenn foo schon existiert, dann lösche es, bevor du es neu erstellst. Nach dem Erstellen lösche es und schaue, ob es noch da ist (errorlevel funktioniert bei rmdir nicht) set "mode=mkdir" if exist foo ( rmdir foo>nul ) mkdir foo>nul if "%errorlevel%" GEQ "1" ( set "error=%LANG_error% %LANG_permissions%" goto fail ) set "mode=rmdir" rmdir foo>nul if exist foo ( set "error=%LANG_error% %LANG_permissions%" goto fail ) rem Prüfung ob Dateien vorhanden sind set "mode=preparation" if not exist lc_332_win32.c4u ( set "error=%LANG_error% %LANG_c4u_missing%" goto fail ) if not exist c4group.exe ( set "error=%LANG_error% %LANG_c4group_missing%" goto fail ) rem ende rem taskkill echo %LANG_warning% %LANG_taskkill_execution% pause set "mode=taskkill" echo. >>"%userprofile%\Desktop\%~n0.log" echo Timestamp: %date% %time% mode=taskkill tasklist | find /i "clonk.exe" >>"%userprofile%\Desktop\%~n0.log" tasklist | find /i "clonk.exe" && taskkill /im clonk.exe /F || echo %LANG_task_not_running% >>"%userprofile%\Desktop\%~n0.log" echo after taskkill: tasklist | find /i "clonk.exe" >>"%userprofile%\Desktop\%~n0.log" timeout /t 1 /nobreak>nul rem update c4group echo. echo. >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo. echo | set /p dummyName=%LANG_starting_update_c4grou% set "mode=updating_c4group" >>"%userprofile%\Desktop\%~n0.log" echo Timestamp: %date% %time% mode=updating_c4group .\c4group lc_332_win32.c4u -y 1>>"%userprofile%\Desktop\%~n0.log" 2>&1 timeout /t 1 /nobreak>nul echo OK! rem update clonk echo. >>"%userprofile%\Desktop\%~n0.log" echo. echo | set /p dummyName=%LANG_starting_update_clonk% set "mode=updating_clonk" >>"%userprofile%\Desktop\%~n0.log" echo Timestamp: %date% %time% mode=updating_clonk .\Clonk.exe lc_332_win32.c4u 1>>"%userprofile%\Desktop\%~n0.log" 2>&1 timeout /t 1 /nobreak>nul echo OK! echo. echo. >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo. echo %LANG_finished_update% echo. rem Log behalten? :q1 echo %LANG_log1% set "q1=" set /p q1=%LANG_log2% if defined q1 set "q1=%q1:"=%" if defined q1 set "q1=%q1:<=%" if defined q1 set "q1=%q1:>=%" if defined q1 set "q1=%q1:|=%" if defined q1 set "q1=%q1:^=%" if defined q1 set "q1=%q1:?=%" if "%q1%" == "" ( set "q1=n" ) if /i "%q1%" == "y" ( echo OK. pause goto :eof ) if /i "%q1%" == "j" ( echo OK. pause goto :eof ) if /i "%q1%" == "n" ( del "%userprofile%\Desktop\%~n0.log" echo %LANG_log_deleted% pause goto :eof ) cls echo %LANG_wrong_value% goto q1 rem ign1 ignores ":fail" goto ign1 :fail rem Errorlog and Errormessage >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo ////////////////////////////////////ERROR\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo Timestamp: %date% %time% >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo Error: %error% >>"%userprofile%\Desktop\%~n0.log" echo Mode: %mode% >>"%userprofile%\Desktop\%~n0.log" echo Admin: %admin% >>"%userprofile%\Desktop\%~n0.log" echo Installerversion: %Installerversion% >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo %LANG_error_help1% >>"%userprofile%\Desktop\%~n0.log" echo %LANG_error_help2% >>"%userprofile%\Desktop\%~n0.log" echo %LANG_error_help3% >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo Enviroment: >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo ICALCS output for current directory: >>"%userprofile%\Desktop\%~n0.log" ICACLS "%~dp0 >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo List of files and folders in current directory: >>"%userprofile%\Desktop\%~n0.log" dir /a >>"%userprofile%\Desktop\%~n0.log" echo. >>"%userprofile%\Desktop\%~n0.log" echo ////////////////////////////////////ERROR\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ echo. echo ////////////////////////////////////%LANG_hard_error%\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ echo. echo. echo %error% echo Mode: %mode% echo Admin: %admin% echo Installerversion: %Installerversion% echo. echo %LANG_log1% echo. echo %LANG_error_help1% echo %LANG_error_help2% echo %LANG_error_help3% echo. echo ////////////////////////////////////%LANG_hard_error%\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ pause>nul :ign1