alas.bat内容:
@rem
:: Alas Run Tool v3
:: Author: whoamikyo (https://kyo.ninja)
:: Version: 3.0
:: Last updated: 2020-09-08
:: https://github.com/LmeSzinc/AzurLaneAutoScript
@echo off
chcp | find "932" >NUL && set "IME=true" || set "IME=false"
if "%IME%"=="true" (
echo =======================================================================================================================
echo == Incorrect encoding, visit this link to correct: https://bit.ly/34t8ubY
echo == You may not have classical backslashes, you may have problems to run ALAS
start https://bit.ly/34t8ubY
echo == To copy, select the link and CTRL+SHIFT+C
echo =======================================================================================================================
pause
goto :eof
)
pushd "%~dp0"
setlocal EnableDelayedExpansion
set "Version=3.0"
set "lastUpdated=2020-08-27"
:: Remote repo
set "Remoterepo=https://raw.githubusercontent.com/LmeSzinc/AzurLaneAutoScript/master/toolkit"
set "Requirements=https://raw.githubusercontent.com/LmeSzinc/AzurLaneAutoScript/master/requirements.txt"
rem ================= Preparation =================
:: Set the root directory
set "root=%~dp0"
set "root=%root:~0,-1%"
cd "%root%"
rem call :ExitIfNotPython
rem ================= Variables =================
set "pyBin=%root%\toolkit\python.exe"
set "adbBin=%root%\toolkit\Lib\site-packages\adbutils\binaries\adb.exe"
set "gitBin=%root%\toolkit\Git\mingw64\bin\git.exe"
set "curlBin=%root%\toolkit\Git\mingw64\bin\curl.exe"
set "api_json=%root%\config\api_git.json"
set "AlasConfig=%root%\config\alas.ini"
set "template=%root%\config\template.ini"
set "gitFolder=%root%.git"
set "logFolder=%root%\log\"
set "_pyBin=%root%\toolkit"
set "_GitBin=%root%\toolkit\Git\mingw64\bin"
set "_adbBin=%root%\toolkit\Lib\site-packages\adbutils\binaries"
set "PATH=%root%\toolkit\alias;%root%\toolkit\command;%_pyBin%;%_pyBin%\Scripts;%_GitBin%;%_adbBin%;%PATH%"
:: Import main settings (%Language%, %Region%, %SystemType%).
call command\Get.bat Main
:: Import the Proxy setting and apply. Then show more info in Option6.
call :Emulator_SetupFirstRun
call command\Get.bat Proxy
call command\Get.bat InfoOpt1
:: If already deployed, show more info in Option3.
call command\Get.bat InfoOpt2
rem call command\Get.bat InfoOpt4
call command\Get.bat DeployMode
:: Start of Deployment
set "pipLog=%root%\toolkit\log\pip_updatelog%datetime%.log"
set "pipLogFolder=%root%\toolkit\log\"
if "%IsUsingGit%"=="yes" if "%DeployMode%"=="unknown" ( xcopy /Y toolkit\config .git\ > NUL )
call :UpdateChecker_Alas
title ^| Alas Run Tool V3 ^| Branch: %BRANCH% ^| Git hash: %LAST_LOCAL_GIT% ^| commit date: %GIT_CTIME% ^|
rem ================= Menu =================
:MENU
cd "%root%"
cls
echo =======================================================================================================================
:: Uncomment to debug the configuration that imported from "config\deploy.ini"
echo == ^| Language: %Language% & echo == ^| Region: %Region% & echo == ^| SystemType: %SystemType%
rem echo == ^| http_proxy: %http_proxy% & echo https_proxy: %https_proxy%
echo == ^| DeployMode: %DeployMode%
echo == ^| KeepLocalChanges: %KeepLocalChanges%
echo == ^| RealtimeMode: %RealtimeMode%
echo == ^| AutoMode: %AutoMode%
rem echo == ^| FirstRun: %FirstRun%
echo == ^| IsUsingGit: %IsUsingGit%
echo == ^| Serial: %SerialDeploy%
setLocal EnableDelayedExpansion
set "STR=^| Alas Run Tool %Version% ^|"
set "SIZE=119"
set "LEN=0"
:strLen_Loop
if not "!!STR:~%LEN%!!"=="" set /A "LEN+=1" & goto :strLen_Loop
set "equal========================================================================================================================"
set "spaces========================================================================================================================"
call echo %%equal:~0,%SIZE%%%
set /a "pref_len=%SIZE%-%LEN%-2"
set /a "pref_len/=2"
set /a "suf_len=%SIZE%-%LEN%-2-%pref_len%"
call echo %%spaces:~0,%pref_len%%%%%STR%%%%spaces:~0,%suf_len%%%=====
call echo %%equal:~0,%SIZE%%%
endLocal
echo.
echo =======================================================================================================================
if "%AutoMode%"=="enable" ( echo. && echo AutoMode is On, to disable go to config/deploy.ini and disable && goto %DefaultServer% )
echo. & echo [*] Select your Server/GUI Language
echo ^|
echo ^|-- [1] EN
echo ^|
echo ^|-- [2] CN
echo ^|
echo ^|-- [3] JP
echo ^|
echo ^|-- [4] TW
echo.
echo. & echo [5] Updater
echo. & echo [6] Settings
echo =======================================================================================================================
set choice=0
set /p choice= Please input the option and press ENTER:
echo =======================================================================================================================
if "%choice%"=="1" goto en
if "%choice%"=="2" goto cn
if "%choice%"=="3" goto jp
if "%choice%"=="4" goto tw
if "%choice%"=="5" goto Updater_menu
if "%choice%"=="6" goto setting
echo. & echo Please input a valid option.
pause > NUL
goto MENU
rem ================= OPTION 1 =================
:en
set "GUI=EN"
call :CheckBsBeta
rem :continue_en
rem call :AdbConnect
echo =======================================================================================================================
echo Python Found in %pyBin% Proceeding..
echo Opening alas_en.pyw in %root%
%pyBin% alas_en.pyw
echo Press any key to back main menu
pause > NUL
goto :MENU
rem ================= OPTION 2 =================
:cn
set "GUI=CN"
call :CheckBsBeta
rem call :AdbConnect
echo =======================================================================================================================
echo Python Found in %pyBin% Proceeding..
echo Opening alas_cn.pyw in %root%
%pyBin% alas_cn.pyw
echo Press any key to back main menu
pause > NUL
goto :MENU
rem ================= OPTION 3 =================
:jp
set "GUI=JP"
call :CheckBsBeta
rem call :AdbConnect
echo =======================================================================================================================
echo Python Found in %pyBin% Proceeding..
echo Opening alas_jp.pyw in %root%
%pyBin% alas_jp.pyw
echo Press any key to back main menu
pause > NUL
goto :MENU
rem ================= OPTION 4 =================
:tw
set "GUI=TW"
call :CheckBsBeta
rem call :AdbConnect
echo =======================================================================================================================
echo Python Found in %pyBin% Proceeding..
echo Opening alas_tw.pyw in %root%
%pyBin% alas_tw.pyw
echo Press any key to back main menu
pause > NUL
goto :MENU
rem ================= OPTION 5 =================
:Updater_menu
:Run_UpdateAlas
set source="origin"
if "%Region%"=="cn" set "source=gitee"
echo. & echo.
echo =======================================================================================================================
echo == ^| Branch in use: %Branch%
echo == ^| KeepLocalChanges is: %KeepLocalChanges%
echo =======================================================================================================================
if "%AutoMode%"=="enable" ( goto proceed_alas )
set opt6_opt4_choice=0
echo. & echo == ^| Change default Branch (master/dev), please enter T;
echo == ^| To proceed update using Branch: %Branch%, please enter Y;
echo == ^| Back to Updater menu, please enter N;
set /p opt6_opt4_choice= Press ENTER to cancel:
echo.
if /i "%opt6_opt4_choice%"=="T" (
call command\Config.bat Branch
) else if /i "%opt6_opt4_choice%"=="Y" (
goto proceed_alas
) else if /i "%opt6_opt4_choice%"=="N" (
goto ReturnToMenu
) else (
echo == ^| Invalid input. Cancelled.
goto ReturnToMenu
)
:proceed_alas
if "%KeepLocalChanges%"=="disable" (
echo == ^| GIT Found in %gitBin% Proceeding
echo == ^| Updating from %source% repository..
%gitBin% fetch %source% %Branch%
%gitBin% reset --hard %source%/%Branch%
%gitBin% pull --ff-only %source% %Branch%
if "%Region%"=="cn" set "pip_option=--index-url=https://pypi.tuna.tsinghua.edu.cn/simple"
echo == ^| Updating requirements.txt
call pip install -r requirements.txt %pip_option% --no-warn-script-location > %pipLog%
echo == ^| requirements.txt updated!
echo == ^| DONE!
echo. & echo == ^| Please re-run this batch to make the settings take effect.
echo == ^| Please re-run the "alas.bat" to make the settings take effect.
goto PleaseRerun
) else (
echo == ^| GIT Found in %gitBin% Proceeding
echo == ^| Updating from %source% repository..
%gitBin% stash
%gitBin% pull %source% %Branch%
%gitBin% stash pop
if "%Region%"=="cn" set "pip_option=--index-url=https://pypi.tuna.tsinghua.edu.cn/simple"
echo == ^| Updating PIP
call pip install %pip_option% --upgrade pip
echo == ^| Updating requirements.txt
call pip install -r requirements.txt %pip_option% --no-warn-script-location > %pipLog%
echo == ^| requirements.txt updated!
echo == ^| DONE!
echo. & echo == ^| Please re-run this batch to make the settings take effect.
echo == ^| Please re-run the "alas.bat" to make the settings take effect.
goto PleaseRerun
)
:update_toolkit
echo == is not done yet
pause > NUL
goto ReturnToSetting
rem ================= OPTION 5 =================
:Setting
cls
setLocal EnableDelayedExpansion
set "STR2=Advanced Settings="
set "SIZE=119"
set "LEN=0"
:strLen_Loop
if not "!!STR2:~%LEN%!!"=="" set /A "LEN+=1" & goto :strLen_Loop
set "equal========================================================================================================================"
set "spaces========================================================================================================================"
call echo %%equal:~0,%SIZE%%%
set /a "pref_len=%SIZE%-%LEN%-2"
set /a "pref_len/=2"
set /a "suf_len=%SIZE%-%LEN%-2-%pref_len%"
call echo =%%spaces:~0,%pref_len%%%%%STR2%%%%spaces:~0,%suf_len%%%=
call echo %%equal:~0,%SIZE%%%
endLocal
echo =======================================================================================================================
echo == Please re-run this batch to make any settings take effect
echo =======================================================================================================================
echo.
echo. & echo [0] Return to the Main Menu
echo. & echo [1] Select Download Region
echo. & echo [2] Set Global Proxy
echo. & echo [3] Emulator Auto-ADB Settings
echo. & echo [4] (Disable/Enable) Keep local changes
echo. & echo [5] Change default Branch to update (master/dev)
echo. & echo [6] (Disable/Enable) Kill ADB server at each start
echo. & echo [7] (Disable/Enable) ADB connect at each start
echo. & echo [8] Replace ADB from chinese emulators
echo. & echo [9] Why can't I toggle certain settings above?
echo. & echo [10] Reset Settings
echo. & echo [11] (Disable/Enable) AutoMode
echo. & echo.
echo =======================================================================================================================
set opt2_choice=-1
set /p opt2_choice= Please input the index number of option and press ENTER:
echo. & echo.
if "%opt2_choice%"=="0" goto MENU
if "%opt2_choice%"=="1" goto Region_setting
if "%opt2_choice%"=="2" goto Proxy_setting
if "%opt2_choice%"=="3" goto Emulator_Setup
if "%opt2_choice%"=="4" goto Keep_local_changes
if "%opt2_choice%"=="5" goto Branch_setting
if "%opt2_choice%"=="6" goto settings_KilADBserver
if "%opt2_choice%"=="7" goto settings_ADBconnect
if "%opt2_choice%"=="8" goto menu_ReplaceAdb
if "%opt2_choice%"=="9" goto Reset_setting
if "%opt2_choice%"=="10" goto Reset_setting
if "%opt2_choice%"=="11" goto AutoMode
echo Please input a valid option.
goto ReturnToSetting
:Region_setting
echo The current Download Region is: %Region%
echo Chinese users, it is recommended to switch to Gitee, Option [2]
echo [1] Origin (Github) ; [2] CN mirror (Gitee)
set opt3_choice=-1
set /p opt3_choice= Please input the option and press ENTER:
echo =======================================================================================================================
if "%opt3_choice%"=="1" ( call command\Config.bat Region origin && goto PleaseRerun )
if "%opt3_choice%"=="2" ( call command\Config.bat Region cn && goto PleaseRerun )
goto ReturnToSetting
:Realtime_mode
call command\Config.bat RealtimeMode
if "%FirstRun%"=="yes" ( set FirstRun=no && call command\Config.bat FirstRun %FirstRun% )
goto PleaseRerun
:AutoMode
echo. & echo [*] Select your DEFAULT Server/GUI Language
echo ^|
echo ^|-- [1] EN
echo ^|
echo ^|-- [2] CN
echo ^|
echo ^|-- [3] JP
echo ^|
echo ^|-- [4] TW
echo.
echo =======================================================================================================================
set choice=0
set /p choice= Please input the option and press ENTER:
echo =======================================================================================================================
if "%choice%"=="1" set DefaultServer=en && call command\Config.bat DefaultServer %DefaultServer%
if "%choice%"=="2" set DefaultServer=cn && call command\Config.bat DefaultServer %DefaultServer%
if "%choice%"=="3" set DefaultServer=jp && call command\Config.bat DefaultServer %DefaultServer%
if "%choice%"=="4" set DefaultServer=tw && call command\Config.bat DefaultServer %DefaultServer%
call command\Config.bat AutoMode
goto PleaseRerun
:Proxy_setting
call command\Get.bat Proxy
if "%state_globalProxy%"=="enable" (
echo Global Proxy: enabled
) else ( echo Global Proxy: disabled ^(DEFAULT^) )
echo. & echo.
echo If Global Proxy is enabled, the Proxy Server of current CMD window will be:
echo HTTP_PROXY = %proxyHost%:%httpPort%
echo HTTPS_PROXY = %proxyHost%:%httpsPort%
set opt6_opt3_choice=0
echo. & echo To (disable/enable) the Global Proxy, please enter T;
echo To reset to the default Proxy Server, please enter Y;
echo To customize the Proxy Host or Port, please enter N;
set /p opt6_opt3_choice= Press ENTER to cancel:
echo.
setlocal EnableDelayedExpansion
if /i "%opt6_opt3_choice%"=="T" (
call command\Config.bat Proxy
) else if /i "%opt6_opt3_choice%"=="Y" (
call command\Config.bat ProxyHost http://127.0.0.1
call command\Config.bat Http 1080
call command\Config.bat Https 1080
echo The Proxy Server has been reset to the default.
call command\Config.bat Proxy enable
) else if /i "%opt6_opt3_choice%"=="N" (
set /p opt6_opt3_proxyHost= Please input - Proxy Host ^(DEFAULT http://127.0.0.1 ^):
set /p opt6_opt3_httpPort= Please input - Http Port ^(DEFAULT 1080 ^):
set /p opt6_opt3_httpsPort= Please input - Https Port ^(DEFAULT 1080 ^):
if "!opt6_opt3_proxyHost!"=="" ( set "opt6_opt3_proxyHost=http://127.0.0.1" )
if "!opt6_opt3_httpPort!"=="" ( set "opt6_opt3_httpPort=1080" )
if "!opt6_opt3_httpsPort!"=="" ( set "opt6_opt3_httpsPort=1080" )
call command\Config.bat ProxyHost !opt6_opt3_proxyHost!
call command\Config.bat Http !opt6_opt3_httpPort!
call command\Config.bat Https !opt6_opt3_httpsPort!
echo.
call command\Config.bat Proxy enable
echo The custom Proxy Server has been set successfully.
echo Please re-perform this step here to confirm the modification.
) else (
echo Invalid input. Cancelled.
goto ReturnToSetting
)
endlocal
echo. & echo Please re-run this batch to make the settings take effect.
echo Please re-run the "alas.bat" to make the settings take effect.
goto PleaseRerun
:Reset_setting
echo. & echo After updating this batch, if the new settings cannot be toggled, you need to delete "config\deploy.ini". & echo But this will reset all the above settings to default.
set opt3_opt10_choice=0
echo. & echo To delete the settings, please enter Y;
set /p opt3_opt10_choice= Press ENTER to cancel:
echo.
if /i "%opt3_opt10_choice%"=="Y" (
del /Q config\deploy.ini >NUL 2>NUL
echo The "config\deploy.ini" has been deleted, please try changing the settings again.
) else ( echo Invalid input. Cancelled. )
goto ReturnToSetting
:menu_ReplaceAdb
cls
echo =======================================================================================================================
echo ======== Different version of ADB will kill each other when starting.
echo ==== Chinese emulators (NoxPlayer, LDPlayer, MemuPlayer, MuMuPlayer) use their own adb,
echo == instead of the one in system PATH, so when they start they kill the adb.exe that Alas is using
echo == so, you need replace the ADB in your emulator with the one Alas is using.
echo =======================================================================================================================
echo.
echo. & echo [0] Return to the Main Menu
echo. & echo [1] Replace NoxPlayer ADB
echo. & echo [2] Replace LDplayer ADB
echo. & echo [3] Replace Memu ADB
echo. & echo.
echo =======================================================================================================================
set opt4_choice=-1
set /p opt4_choice= Please input the index number of option and press ENTER:
echo. & echo.
if "%opt4_choice%"=="0" goto MENU
if "%opt4_choice%"=="1" goto replace_nox
if "%opt4_choice%"=="2" goto replace_ldplayer
if "%opt4_choice%"=="3" goto replace_memu
echo Please input a valid option.
goto menu_ReplaceAdb
rem ================= EMULATOR SETTINGS =================
:replace_nox
reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo>nul 2>nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == NoxAppPlayer detected, Proceeding...
) else (
echo =======================================================================================================================
echo == NoxAppPlayer not detected
echo Press any key to back main menu
pause > NUL
goto ReturnToMenu
)
:NOX
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath) do set InstallPath=%%M
%adbBin% kill-server > nul 2>&1
"%InstallPath%\bin\nox_adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false"
if "%MATCH%"=="true" ( echo Version already match with ALAS ADB version && echo Press any key to back main menu && pause > NUL )
echo f | xcopy /Y "%InstallPath%\bin\adb.exe" "%InstallPath%\bin\adb.exe.bak" >nul
echo f | xcopy /Y "%InstallPath%\bin\nox_adb.exe" "%InstallPath%\bin\nox_adb.exe.bak" >nul
xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\" >nul
echo f | xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\nox_adb.exe" >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == Success
echo == Press any key to back main menu
pause > NUL
goto ReturnToMenu
) else (
echo =======================================================================================================================
echo == Error, you may not have permission to replace the file
echo == try run this batch as administrator
echo Press any key to back main menu
pause > NUL
goto :eof
)
:replace_ldplayer
set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer
reg query HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer>nul 2>nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == LDplayer detected, Proceeding...
) else (
set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer64
echo =======================================================================================================================
echo == LDplayer64 detected, Proceeding...
)
:LD
for /f "usebackq tokens=2,* skip=2" %%L IN ( reg query "%LDREG%" /v InstallDir) do set InstallDir=%%M
%adbBin% kill-server > nul 2>&1
"%InstallDir%\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false"
if "%MATCH%"=="true" ( echo Version already match with ALAS ADB version && echo Press any key to back main menu && pause > NUL )
echo f | xcopy /Y "%InstallDir%\adb.exe" "%InstallDir%\adb.exe.bak" >nul
xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallDir%\" >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == Success
echo == Press any key to back main menu
pause > NUL
goto ReturnToMenu
) else (
echo =======================================================================================================================
echo == Error, you may not have permission to replace the file
echo == try run this batch as administrator
echo Press any key to back main menu
pause > NUL
goto ReturnToMenu
)
:process_checker
setlocal EnableDelayedExpansion
set process=(MEmu.exe Bluestacks.exe Nox.exe dnplayer.exe NemuHeadless.exe )
for %%i in %process% do (
tasklist /nh /fi "IMAGENAME EQ %%i" 2>NUL | find /i /n "%%i">NUL
if !ERRORLEVEL! EQU 0 ( CALL :ProcessFound %%i )
)
goto :eof
:ProcessFound
echo =======================================================================================================================
ECHO == %1 is running
echo =======================================================================================================================
if "%1"=="dnplayer.exe" goto process_ldplayer
if "%1"=="Nox.exe" goto process_nox
if "%1"=="MEmu.exe" goto process_memu
if "%1"=="Bluestacks.exe" goto process_bluestacks
goto :eof
:process_ldplayer
set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer
reg query HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer>nul 2>nul
if %errorlevel% equ 0 (
echo == LDplayer 32 bit detected
echo =======================================================================================================================
) else (
set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer64
echo == LDplayer 64 bit detected
echo =======================================================================================================================
)
for /f "usebackq tokens=2,* skip=2" %%L IN ( reg query %LDREG% /v InstallDir) do set InstallDir=%%M
"%InstallDir%\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false"
if "%MATCH%"=="false" (
echo == Wrong ADB version...
echo == We will replace your ADB, re-run your server choice after that you back to main menu
echo =======================================================================================================================
goto LD
)
rem %adbBin% devices | find /i "emulator-5554" >NUL && set "EMULATOR=true" || set "EMULATOR=false"
set "EMULATOR=true"
if "%EMULATOR%"=="true" (
echo == Your LDplayer will be restarted, wait...
@cd/d "%InstallDir%"
dnconsole.exe quit --index all
@cd/d "%root%"
start command\taskkill.bat
timeout /t 3 >nul
%adbBin% kill-server
%adbBin% devices >nul
timeout /t 1 >nul
start /d "%InstallDir%" dnplayer.exe
echo Press any key to continue when your LDplayer completely started
pause > nul
)
goto :eof
:process_nox
echo == NoxAppPlayer is detected
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath) do set InstallPath=%%M
"%InstallPath%\bin\nox_adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false"
if "%MATCH%"=="false" (
echo == Wrong ADB version...
echo == We will replace your ADB, re-run your server choice after that you back to main menu
echo =======================================================================================================================
goto NOX
)
goto :eof
:process_memu
echo == MEmu is detected
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation) do set InstallLocation=%%M
"%InstallLocation%\MEmu\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false"
if "%MATCH%"=="false" (
echo == Wrong ADB version...
echo == We will replace your ADB, re-run your server choice after that you back to main menu
echo =======================================================================================================================
goto MEMU
)
goto :eof
:process_bluestacks
echo == Bluestacks is detected
goto :eof
:ProcessNotFound
ECHO %1 is not running
echo =======================================================================================================================
goto :eof
rem ================= EMULATOR SETUP MENU =================
:Emulator_Setup
cls
if NOT exist config\alas.ini (
echo f | xcopy config\template.ini config\alas.ini > nul
)
echo =======================================================================================================================
echo == It seems like this is the first time that you run this program
echo == You may need to configure the connection to your emulator
echo =======================================================================================================================
echo.
echo. & echo [1] Manual Setup
echo. & echo [2] NoxAppPlayer Automatic Connection
echo. & echo [3] Bluestacks Hyper-V Beta Automatic Connection
echo. & echo [4] MEmu Automatic Connection
echo. & echo [0] Return to the Main Menu
echo. & echo.
echo =======================================================================================================================
set opt55_choice=-1
set /p opt55_choice= Please input the index number of option and press ENTER:
echo. & echo.
if "%opt55_choice%"=="1" goto Serial_setting
if "%opt55_choice%"=="2" goto Settings_NoxSerial
if "%opt55_choice%"=="3" goto Realtime_mode
if "%opt55_choice%"=="4" goto Settings_MemuSerial
if "%opt55_choice%"=="0" goto MENU
echo Please input a valid option.
goto Emulator_Setup
:Emulator_SetupFirstRun
cls
if "%FirstRun%"=="no" goto :eof
set FirstRun=yes
echo =======================================================================================================================
echo == It seems like this is the first time that you run this program
echo == You may need to configure the connection to your emulator
echo =======================================================================================================================
echo.
echo. & echo [1] Manual Setup
echo. & echo [2] NoxAppPlayer Automatic Connection
echo. & echo [3] Bluestacks Hyper-V Beta Automatic Connection ( ONLY TO HYPER-V VERSION, FOR NORMAL BLUESTACKS USE MANUAL SETUP )
echo. & echo [4] MEmu Automatic Connection
echo. & echo [0] Return to the Main Menu
echo. & echo.
echo =======================================================================================================================
set opt55_choice=-1
set /p opt55_choice= Please input the index number of option and press ENTER:
echo. & echo.
if "%opt55_choice%"=="1" call :Serial_setting
if "%opt55_choice%"=="2" goto Settings_NoxSerial
if "%opt55_choice%"=="3" goto Realtime_mode
if "%opt55_choice%"=="4" goto Settings_MemuSerial
if "%opt55_choice%"=="0" goto MENU
echo Please input a valid option.
goto Emulator_SetupFirstRun
rem ================= MEMU SETTINGS =================
:replace_memu
reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == Memu detected, Proceeding...
) else (
echo =======================================================================================================================
echo == Memu not detected
echo == Press any key to back main menu
pause > NUL
goto ReturnToMenu
)
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation) do set InstallLocation=%%M
%adbBin% kill-server > nul 2>&1
echo f | xcopy /Y "%InstallLocation%\MEmu\adb.exe" "%InstallLocation%\MEmu\adb.exe.bak" >nul
xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallLocation%\MEmu\" >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == Success
echo == Press any key to back main menu
pause > NUL
goto ReturnToMenu
) else (
echo =======================================================================================================================
echo == Error, you may not have permission to replace the file
echo == try run this batch as administrator
echo Press any key to back main menu
pause > NUL
goto ReturnToMenu
)
:Settings_MemuSerial
reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == MEmu detected, Proceeding...
) else (
echo =======================================================================================================================
echo == MEmu not detected
echo == Press any key to back Emulator Settings Menu
pause > NUL
goto Emulator_Setup
)
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation) do set InstallLocation=%%M
%adbBin% kill-server > nul 2>&1
echo f | xcopy /Y "%InstallLocation%\MEmu\adb.exe" "%InstallLocation%\MEmu\adb.exe.bak" >nul
xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallLocation%\MEmu\" >nul
echo =======================================================================================================================
echo == Please input the instance of your MEmu
echo == if you have only one instance type 0 or press Enter
echo == the first instance will always be 0, and the subsequent ones will follow the numerical order
echo =======================================================================================================================
set index=0
set /p index= Please input the instance of your MEmu, Press C to back Emulator Settings Menu:
if /i "%index%"=="C" ( goto EmulatorSetup )
echo =======================================================================================================================
if "%index%"=="0" ( set folderName=MEmu ) else ( set folderName=MEmu%index% )
set MEmuPathTemp=\MEmu\MemuHyperv VMs\
set MEmuPath=%folderName%\%folderName%.memu
set MEmuPath=%MEmuPath: =%
set MEmuBoxPath="%InstallLocation%%MEmuPathTemp%%MEmuPath%"
for /f tokens^=8delims^=^" %%e in ('findstr /i "5555" %MEmuBoxPath%') do ( set MEmuAdbPort=%%e )
echo %folderName% adb port:%MEmuAdbPort%
set SerialMEmu=127.0.0.1:%MEmuAdbPort%
echo =======================================================================================================================
echo == connecting at %SerialMEmu%
%adbBin% connect %SerialMEmu% | find /i "connected to" >nul
if errorlevel 1 (
echo =======================================================================================================================
echo == The connection was not successful on SERIAL: %SerialMEmu%
echo == Check if your emulator is open and ADB debug is ON
pause > NUL
goto Settings_MemuSerial
)
call command\Config.bat Serial %SerialMEmu%
if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate %SerialMEmu% ) else ( call command\ConfigAlas.bat SerialAlas %SerialMEmu% )
set FirstRun=no
call command\Config.bat FirstRun %FirstRun%
echo =======================================================================================================================
echo == The connection was Successful on SERIAL: %SerialMEmu%
echo =======================================================================================================================
echo == Old Serial: %SerialAlas%
echo == New Serial: %SerialMEmu%
echo =======================================================================================================================
echo == The connection was Successful on SERIAL: %SerialMEmu%
echo. & echo Please re-run the "alas.bat" to make the settings take effect.
pause > NUL
goto PleaseRerun
:Settings_NoxSerial
reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo >nul
if %errorlevel% equ 0 (
echo =======================================================================================================================
echo == NoxAppPlayer detected, Proceeding...
) else (
echo =======================================================================================================================
echo == NoxAppPlayer not detected
echo Press any key to back Emulator Settings Menu
pause > NUL
goto Emulator_Setup
)
for /f "usebackq tokens=2,* skip=2" %%L in ( reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath) do set InstallPath=%%M
%adbBin% kill-server > nul 2>&1
echo f | xcopy /Y "%InstallPath%\bin\adb.exe" "%InstallPath%\bin\adb.exe.bak" >nul
echo f | xcopy /Y "%InstallPath%\bin\nox_adb.exe" "%InstallPath%\bin\nox_adb.exe.bak" >nul
xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\" >nul
echo f | xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\nox_adb.exe" >nul
echo =======================================================================================================================
echo == Please input the instance of your Nox
echo == if you have only one instance type 0 or press Enter
echo == the first instance will always be 0, and the subsequent ones will follow the numerical order
echo =======================================================================================================================
set index=0
set /p index= Please input the instance of your Nox, press C to back Emulator Settings Menu:
if /i "%index%"=="C" ( goto EmulatorSetup )
if "%index%"=="0" ( set folderName=nox ) else ( set folderName=Nox%index% )
set NoxPath=\Bin\BignoxVMS\%folderName%\%folderName%.vbox
set NoxPath=%NoxPath: =%
set vboxPath="%InstallPath%"%NoxPath%
for /f tokens^=8delims^=^" %%e in ('findstr /i "5555" %vboxPath%') do ( set NoxAdbPort=%%e )
set SerialNox=127.0.0.1:%NoxAdbPort%
echo =======================================================================================================================
echo == connecting at %SerialNox%
%adbBin% connect %SerialNox% | find /i "connected to" >nul
if errorlevel 1 (
echo =======================================================================================================================
echo == The connection was not successful on SERIAL: %SerialNox%
echo == Check if your emulator is open and ADB debug is ON
pause > NUL
goto Settings_NoxSerial
)
call command\Config.bat Serial %SerialNox%
if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate %SerialNox% ) else ( call command\ConfigAlas.bat SerialAlas %SerialNox% )
set FirstRun=no
call command\Config.bat FirstRun %FirstRun%
echo =======================================================================================================================
echo == The connection was Successful on SERIAL: %SerialNox%
echo =======================================================================================================================
echo == Old Serial: %SerialAlas%
echo == New Serial: %SerialNox%
echo =======================================================================================================================
echo == The connection was Successful on SERIAL: %SerialNox%
echo. & echo == Please re-run the "alas.bat" to make the settings take effect.
pause > NUL
goto PleaseRerun
:Serial_setting
echo =======================================================================================================================
echo == If you dont know what are doing, check our wiki first:
echo https://github.com/LmeSzinc/AzurLaneAutoScript/wiki
echo == Current Serial = %SerialDeploy%
echo == Enter your HOST:PORT eg: 127.0.0.1:5555
echo =======================================================================================================================
set serial_inputY=0
echo. & echo Would you like to change the current SERIAL?, please enter Y to proceed;
set /p serial_inputY= Press ENTER to cancel:
echo.
setlocal EnableDelayedExpansion
if /i "%serial_inputY%"=="Y" (
set /p serial_input= Enter your HOST:PORT ^(DEFAULT 127.0.0.1:5555 ^):
if "!serial_input!"=="" ( set "serial_input=127.0.0.1:5555" )
echo =======================================================================================================================
%adbBin% kill-server > nul 2>&1
%adbBin% connect !serial_input! | find /i "connected to" >nul
if errorlevel 1 (
echo =======================================================================================================================
echo The connection was not successful on SERIAL: !serial_input!
echo == If you use LDplayer, Memu, NoxAppPlayer or MuMuPlayer, you may need replace your emulator ADB.
echo == Check our wiki for more info
pause > NUL
start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/FAQ_en_cn
goto Serial_setting
) else (
echo =======================================================================================================================
call command\Config.bat Serial !serial_input!
if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate !serial_input! ) else ( call command\ConfigAlas.bat SerialAlas !serial_input! )
set FirstRun=no
call command\Config.bat FirstRun %FirstRun%
echo == The connection was Successful on SERIAL: !serial_input!
echo. & echo Please re-run the "alas.bat" to make the settings take effect.
pause > NUL
goto PleaseRerun
)
) else (
echo Invalid input. Cancelled.
goto Emulator_Setup
)
echo =======================================================================================================================
echo == Old Serial: %SerialDeploy%
echo == New Serial: !serial_input!
echo =======================================================================================================================
endlocal
echo. & echo Please re-run the "alas.bat" to make the settings take effect.
pause > NUL
goto PleaseRerun
:AdbConnect
if "%FirstRun%"=="yes" goto Emulator_Setup
if "%KillServer%"=="enable" ( %adbBin% kill-server > nul 2>&1 )
if "%AdbConnect%"=="disable" goto :eof
%adbBin% connect %SerialDeploy% | find /i "connected to" >nul
echo =======================================================================================================================
if errorlevel 1 (
echo == The connection was not successful on SERIAL: %SerialDeploy%
echo == If you use LDplayer, Memu, NoxAppPlayer or MuMuPlayer, you may need replace your emulator ADB.
echo == Check our wiki for more info
pause > NUL
start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/FAQ_en_cn
goto Serial_setting
echo =======================================================================================================================
) else (
%pyBin% -m uiautomator2 init
echo =======================================================================================================================
echo == The connection was Successful on SERIAL: %SerialDeploy%
)
goto :eof
:CheckBsBeta
call :process_checker
if "%RealtimeMode%"=="disable" ( goto AdbConnect )
if Not "%DefaultBluestacksInstance%"=="unknown" ( goto CheckBsBeta2)
echo =======================================================================================================================
echo == ^| Please input which instance of your Bluestacks Hyper-V Beta you will use
echo == ^| if you have only one Bluestacks Hyper-V Beta instance type 0 or press Enter
echo == ^| the first instance will always be 0, and the subsequent ones will follow the numerical order
echo =======================================================================================================================
set DefaultBluestacksInstance=0
set /p DefaultBluestacksInstance= Please input the instance of your Bluestacks Hyper-V Beta
call command\Config.bat DefaultBluestacksInstance %DefaultBluestacksInstance%
rem if /i "%DefaultBluestacksInstance%"=="C" ( goto EmulatorSetup )
echo =======================================================================================================================
rem for /f skip^=1^ tokens^=17^ delims^=^" %%a in ('tasklist /fi "imagename eq bluestacks.exe" /fo:csv /v /fi "status ne NOT RESPONDING"') do ( set WINDOW=%%a )
rem rem set WINDOW=%WINDOW:"=%
rem set WINDOW=%WINDOW: =%
rem if not "%WINDOW%"=="BlueStacks" (
rem set WINDOW=%WINDOW:~10,1%
rem echo == BlueStacks instance %WINDOW% detected
rem ) else (
rem echo == Bluestacks instance 1 detected
rem )
rem if "%WINDOW%"=="BlueStacks" (
rem set folderName=Android
rem ) else (
rem set folderName=Android%WINDOW%
rem )
:CheckBsBeta2
if "%DefaultBluestacksInstance%"=="0" ( set folderName=Android ) else ( set folderName=Android_%DefaultBluestacksInstance% )
set HYPERVREG=HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks_bgp64_hyperv\Guests\%folderName%\Config
set HYPERVREG=%HYPERVREG: =%
echo == ^| Connecting with realtime mode...
for /f "tokens=3" %%a in ('reg query %HYPERVREG% /v BstAdbPort') do (set /a port = %%a)
set SerialRealtime=127.0.0.1:%port%
echo =======================================================================================================================
if "%KillServer%"=="enable" (
%adbBin% kill-server > nul 2>&1
)
echo == ^| connecting at %SerialRealtime% in Bluestacks instance: %DefaultBluestacksInstance%
%adbBin% connect %SerialRealtime% > nul
if "%FirstRun%"=="yes" (
call command\Config.bat Serial %SerialRealtime%
call command\ConfigTemplate.bat SerialTemplate %SerialRealtime%
set FirstRun=no
call command\Config.bat FirstRun %FirstRun%
)
if "%SerialRealtime%"=="%SerialAlas%" if "%PackageName%"=="com.YoStarEN.AzurLane" if "%GUI%"=="EN" (
echo == ^| The serial has not been changed since the last time
goto ShowSerial
)
if "%GUI%"=="EN" (
call command\ConfigAlas.bat SerialAlas %SerialRealtime%
call command\ConfigAlas.bat AzurLanePackage com.YoStarEN.AzurLane
call command\Config.bat Serial %SerialRealtime%
) else (
call command\ConfigAlas.bat SerialAlas %SerialRealtime%
call command\Config.bat Serial %SerialRealtime%
)
:ShowSerial
for %%i in (*.) do if not "%%i"=="LICENSE" del /q "%%i"
echo =======================================================================================================================
echo == ^| Old Serial: %SerialAlas%
echo == ^| New Serial: %SerialRealtime%
echo =======================================================================================================================
%pyBin% -m uiautomator2 init
echo =======================================================================================================================
echo == ^| The connection was Successful on SERIAL: %SerialRealtime%
goto :eof
rem ================= FUNCTIONS =================
REM :CheckAdbConnect
REM for /f "tokens=1*" %%g IN ('%adbBin% connect 127.0.0.1:5555') do set adbCheck=%%g
REM if "%adbCheck%"=="cannot"
REM echo %adbCheck%
:ReturnToSetting
echo. & echo Press any key to continue...
pause > NUL
goto Setting
:ReturnToMenu
echo =======================================================================================================================
echo == Press any key to back to main menu...
pause > NUL
goto MENU
:PleaseRerun
echo =======================================================================================================================
echo == Press any key to exit...
pause > NUL
exit
:ExitIfGit
:: Check whether already exist .git folder
if exist .git\ (
echo =======================================================================================================================
echo == The Initial Deployment has been done. Please delete the ".git" folder before performing this action.
call :PleaseRerun
)
goto :eof
:ExitIfNotPython
if NOT exist toolkit\python.exe (
echo =======================================================================================================================
echo == The Initial Deployment was not done correctly. Please delete entire folder and reinstall from scratch.
start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/Installation_en
call :PleaseRerun
)
:UpdateChecker_Alas
if "%IsUsingGit%"=="no" goto :eof
if "%Region%"=="cn" goto UpdateChecker_AlasGitee
for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set cfg_branch=%%i
"%curlBin%" -s https://api.github.com/repos/lmeszinc/AzurLaneAutoScript/commits/%cfg_branch%?access_token=%GithubToken% > "%root%\toolkit\api_git.json"
for /f "skip=1 tokens=2 delims=:," %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED sha SET sha=%%I
set sha=%sha:"=%
set sha=%sha: =%
for /f "skip=14 tokens=3 delims=:" %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED message SET message=%%I
set message=%message:"=%
set message=%message:,=%
set message=%message:\n=%
set message=%message:\n\n=%
set message=%message:(=%
set message=%message:)=%
SET message=%message:~1%
for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set BRANCH=%%i
for /f "delims=" %%i IN ('%gitBin% log -1 "--pretty=%%H"') DO set LAST_LOCAL_GIT=%%i
for /f "tokens=1,2" %%A in ('%gitBin% log -1 "--format=%%h %%ct" -- .') do (
set GIT_SHA1=%%A
call :gmTime GIT_CTIME %%B
)
:UpdateChecker_AlasGitee
if "%Region%"=="origin" goto time_parsed
for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set cfg_branch=%%i
"%curlBin%" -s https://gitee.com/api/v5/repos/lmeszinc/AzurLaneAutoScript/commits/%cfg_branch% > "%root%\toolkit\api_git.json"
for /f "tokens=5 delims=:," %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED sha SET sha=%%I
set sha=%sha:"=%
set sha=%sha: =%
for /f "tokens=25 delims=:" %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED message SET message=%%I
set message=%message:"=%
set message=%message:,=%
set message=%message:\ntree=%
set message=%message:\n\n=%
set message=%message:(=%
set message=%message:)=%
SET message=%message:~1%
for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set BRANCH=%%i
for /f "delims=" %%i IN ('%gitBin% log -1 "--pretty=%%H"') DO set LAST_LOCAL_GIT=%%i
for /f "tokens=1,2" %%A in ('%gitBin% log -1 "--format=%%h %%ct" -- .') do (
set GIT_SHA1=%%A
call :gmTime GIT_CTIME %%B
)
:AutoRoutine
goto %DefaultServer%
:time_parsed
if %LAST_LOCAL_GIT% == %sha% (
echo =======================================================================================================================
echo == ^| Remote Git hash: ^| %sha%
echo == ^| Remote Git message: ^| %message%
echo =======================================================================================================================
echo == ^| Local Git hash: ^| %LAST_LOCAL_GIT%
echo == ^| Local commit date: ^| %GIT_CTIME%
echo == ^| Current Local Branch: ^| %BRANCH%
echo =======================================================================================================================
echo. && echo == ^| Deleting older .PNG under Log folder, it may take while, it depends on the amount of files you have...
forfiles /P %logFolder% /S /M .png /D -3 /C "cmd /c del @PATH" 2>nul && forfiles /P %pipLogFolder% /S /M .log /D -7 /C "cmd /c del @PATH" 2>nul
echo == Your ALAS is updated, Press any to continue or wait...
timeout /t 5 >nul
goto :eof
) else (
echo =======================================================================================================================
echo == ^| Remote Git hash: ^| %sha%
echo == ^| Remote Git message: ^| %message%
echo =======================================================================================================================
echo == ^| Local Git hash: ^| %LAST_LOCAL_GIT%
echo == ^| Local commit date: ^| %GIT_CTIME%
echo == ^| Current Local Branch: ^| %BRANCH%
echo =======================================================================================================================
if "%AutoMode%"=="enable" goto Run_UpdateAlas
choice /t 10 /c yn /d y /m "There is an update for ALAS. Download now?"
if errorlevel 2 goto :eof
if errorlevel 1 goto Run_UpdateAlas
)
:gmtime
setlocal
set /a z=%2/86400+719468,d=z%%146097,y=^(d-d/1460+d/36525-d/146096^)/365,d-=365y+y/4-y/100,m=^(5d+2^)/153
set /a d-=^(153m+2^)/5-1,y+=z/146097400+m/11,m=^(m+2^)%%12+1
set /a h=%2/3600%%24,mi=%2%%3600/60,s=%2%%60
if %m% lss 10 set m=0%m%
if %d% lss 10 set d=0%d%
if %h% lss 10 set h=0%h%
if %mi% lss 10 set mi=0%mi%
if %s% lss 10 set s=0%s%
endlocal & set %1=%y%-%m%-%d% %h%:%mi%:%s%
goto :eof
rem ================= End of File =================
alas.bat内容: @rem :: Alas Run Tool v3 :: Author: whoamikyo (https://kyo.ninja) :: Version: 3.0 :: Last updated: 2020-09-08 :: https://github.com/LmeSzinc/AzurLaneAutoScript @echo off chcp | find "932" >NUL && set "IME=true" || set "IME=false" if "%IME%"=="true" ( echo ======================================================================================================================= echo == Incorrect encoding, visit this link to correct: https://bit.ly/34t8ubY echo == You may not have classical backslashes, you may have problems to run ALAS start https://bit.ly/34t8ubY echo == To copy, select the link and CTRL+SHIFT+C echo ======================================================================================================================= pause goto :eof ) pushd "%~dp0" setlocal EnableDelayedExpansion set "Version=3.0" set "lastUpdated=2020-08-27" :: Remote repo set "Remoterepo=https://raw.githubusercontent.com/LmeSzinc/AzurLaneAutoScript/master/toolkit" set "Requirements=https://raw.githubusercontent.com/LmeSzinc/AzurLaneAutoScript/master/requirements.txt"
rem ================= Preparation =================
:: Set the root directory set "root=%~dp0" set "root=%root:~0,-1%" cd "%root%" rem call :ExitIfNotPython
rem ================= Variables =================
set "pyBin=%root%\toolkit\python.exe" set "adbBin=%root%\toolkit\Lib\site-packages\adbutils\binaries\adb.exe" set "gitBin=%root%\toolkit\Git\mingw64\bin\git.exe" set "curlBin=%root%\toolkit\Git\mingw64\bin\curl.exe" set "api_json=%root%\config\api_git.json" set "AlasConfig=%root%\config\alas.ini" set "template=%root%\config\template.ini" set "gitFolder=%root%.git" set "logFolder=%root%\log\"
set "_pyBin=%root%\toolkit" set "_GitBin=%root%\toolkit\Git\mingw64\bin" set "_adbBin=%root%\toolkit\Lib\site-packages\adbutils\binaries" set "PATH=%root%\toolkit\alias;%root%\toolkit\command;%_pyBin%;%_pyBin%\Scripts;%_GitBin%;%_adbBin%;%PATH%"
:: Import main settings (%Language%, %Region%, %SystemType%). call command\Get.bat Main :: Import the Proxy setting and apply. Then show more info in Option6. call :Emulator_SetupFirstRun call command\Get.bat Proxy call command\Get.bat InfoOpt1 :: If already deployed, show more info in Option3. call command\Get.bat InfoOpt2 rem call command\Get.bat InfoOpt4 call command\Get.bat DeployMode
:: Start of Deployment set "pipLog=%root%\toolkit\log\pip_updatelog%datetime%.log" set "pipLogFolder=%root%\toolkit\log\" if "%IsUsingGit%"=="yes" if "%DeployMode%"=="unknown" ( xcopy /Y toolkit\config .git\ > NUL ) call :UpdateChecker_Alas title ^| Alas Run Tool V3 ^| Branch: %BRANCH% ^| Git hash: %LAST_LOCAL_GIT% ^| commit date: %GIT_CTIME% ^|
rem ================= Menu =================
:MENU cd "%root%" cls echo ======================================================================================================================= :: Uncomment to debug the configuration that imported from "config\deploy.ini" echo == ^| Language: %Language% & echo == ^| Region: %Region% & echo == ^| SystemType: %SystemType% rem echo == ^| http_proxy: %http_proxy% & echo https_proxy: %https_proxy% echo == ^| DeployMode: %DeployMode% echo == ^| KeepLocalChanges: %KeepLocalChanges% echo == ^| RealtimeMode: %RealtimeMode% echo == ^| AutoMode: %AutoMode% rem echo == ^| FirstRun: %FirstRun% echo == ^| IsUsingGit: %IsUsingGit% echo == ^| Serial: %SerialDeploy% setLocal EnableDelayedExpansion set "STR=^| Alas Run Tool %Version% ^|" set "SIZE=119" set "LEN=0" :strLen_Loop if not "!!STR:~%LEN%!!"=="" set /A "LEN+=1" & goto :strLen_Loop set "equal========================================================================================================================" set "spaces========================================================================================================================" call echo %%equal:~0,%SIZE%%% set /a "pref_len=%SIZE%-%LEN%-2" set /a "pref_len/=2" set /a "suf_len=%SIZE%-%LEN%-2-%pref_len%" call echo %%spaces:~0,%pref_len%%%%%STR%%%%spaces:~0,%suf_len%%%===== call echo %%equal:~0,%SIZE%%% endLocal echo. echo ======================================================================================================================= if "%AutoMode%"=="enable" ( echo. && echo AutoMode is On, to disable go to config/deploy.ini and disable && goto %DefaultServer% )
echo. & echo [*] Select your Server/GUI Language echo ^| echo ^|-- [1] EN echo ^| echo ^|-- [2] CN echo ^| echo ^|-- [3] JP echo ^| echo ^|-- [4] TW echo. echo. & echo [5] Updater echo. & echo [6] Settings echo ======================================================================================================================= set choice=0 set /p choice= Please input the option and press ENTER: echo ======================================================================================================================= if "%choice%"=="1" goto en if "%choice%"=="2" goto cn if "%choice%"=="3" goto jp if "%choice%"=="4" goto tw if "%choice%"=="5" goto Updater_menu if "%choice%"=="6" goto setting echo. & echo Please input a valid option. pause > NUL goto MENU
rem ================= OPTION 1 =================
:en set "GUI=EN" call :CheckBsBeta rem :continue_en rem call :AdbConnect echo ======================================================================================================================= echo Python Found in %pyBin% Proceeding.. echo Opening alas_en.pyw in %root% %pyBin% alas_en.pyw echo Press any key to back main menu pause > NUL goto :MENU
rem ================= OPTION 2 =================
:cn set "GUI=CN" call :CheckBsBeta rem call :AdbConnect echo ======================================================================================================================= echo Python Found in %pyBin% Proceeding.. echo Opening alas_cn.pyw in %root% %pyBin% alas_cn.pyw echo Press any key to back main menu pause > NUL goto :MENU
rem ================= OPTION 3 ================= :jp set "GUI=JP" call :CheckBsBeta rem call :AdbConnect echo ======================================================================================================================= echo Python Found in %pyBin% Proceeding.. echo Opening alas_jp.pyw in %root% %pyBin% alas_jp.pyw echo Press any key to back main menu pause > NUL goto :MENU
rem ================= OPTION 4 ================= :tw set "GUI=TW" call :CheckBsBeta rem call :AdbConnect echo ======================================================================================================================= echo Python Found in %pyBin% Proceeding.. echo Opening alas_tw.pyw in %root% %pyBin% alas_tw.pyw echo Press any key to back main menu pause > NUL goto :MENU
rem ================= OPTION 5 ================= :Updater_menu
:Run_UpdateAlas set source="origin" if "%Region%"=="cn" set "source=gitee" echo. & echo. echo ======================================================================================================================= echo == ^| Branch in use: %Branch% echo == ^| KeepLocalChanges is: %KeepLocalChanges% echo ======================================================================================================================= if "%AutoMode%"=="enable" ( goto proceed_alas ) set opt6_opt4_choice=0 echo. & echo == ^| Change default Branch (master/dev), please enter T; echo == ^| To proceed update using Branch: %Branch%, please enter Y; echo == ^| Back to Updater menu, please enter N; set /p opt6_opt4_choice= Press ENTER to cancel: echo. if /i "%opt6_opt4_choice%"=="T" ( call command\Config.bat Branch ) else if /i "%opt6_opt4_choice%"=="Y" ( goto proceed_alas ) else if /i "%opt6_opt4_choice%"=="N" ( goto ReturnToMenu ) else ( echo == ^| Invalid input. Cancelled. goto ReturnToMenu ) :proceed_alas if "%KeepLocalChanges%"=="disable" ( echo == ^| GIT Found in %gitBin% Proceeding echo == ^| Updating from %source% repository.. %gitBin% fetch %source% %Branch% %gitBin% reset --hard %source%/%Branch% %gitBin% pull --ff-only %source% %Branch% if "%Region%"=="cn" set "pip_option=--index-url=https://pypi.tuna.tsinghua.edu.cn/simple" echo == ^| Updating requirements.txt call pip install -r requirements.txt %pip_option% --no-warn-script-location > %pipLog% echo == ^| requirements.txt updated! echo == ^| DONE! echo. & echo == ^| Please re-run this batch to make the settings take effect. echo == ^| Please re-run the "alas.bat" to make the settings take effect. goto PleaseRerun ) else ( echo == ^| GIT Found in %gitBin% Proceeding echo == ^| Updating from %source% repository.. %gitBin% stash %gitBin% pull %source% %Branch% %gitBin% stash pop if "%Region%"=="cn" set "pip_option=--index-url=https://pypi.tuna.tsinghua.edu.cn/simple" echo == ^| Updating PIP call pip install %pip_option% --upgrade pip echo == ^| Updating requirements.txt call pip install -r requirements.txt %pip_option% --no-warn-script-location > %pipLog% echo == ^| requirements.txt updated! echo == ^| DONE! echo. & echo == ^| Please re-run this batch to make the settings take effect. echo == ^| Please re-run the "alas.bat" to make the settings take effect. goto PleaseRerun )
:update_toolkit echo == is not done yet pause > NUL goto ReturnToSetting
rem ================= OPTION 5 =================
:Setting cls setLocal EnableDelayedExpansion set "STR2=Advanced Settings=" set "SIZE=119" set "LEN=0" :strLen_Loop if not "!!STR2:~%LEN%!!"=="" set /A "LEN+=1" & goto :strLen_Loop set "equal========================================================================================================================" set "spaces========================================================================================================================" call echo %%equal:~0,%SIZE%%% set /a "pref_len=%SIZE%-%LEN%-2" set /a "pref_len/=2" set /a "suf_len=%SIZE%-%LEN%-2-%pref_len%" call echo =%%spaces:~0,%pref_len%%%%%STR2%%%%spaces:~0,%suf_len%%%= call echo %%equal:~0,%SIZE%%% endLocal echo ======================================================================================================================= echo == Please re-run this batch to make any settings take effect echo ======================================================================================================================= echo. echo. & echo [0] Return to the Main Menu echo. & echo [1] Select Download Region echo. & echo [2] Set Global Proxy echo. & echo [3] Emulator Auto-ADB Settings echo. & echo [4] (Disable/Enable) Keep local changes echo. & echo [5] Change default Branch to update (master/dev) echo. & echo [6] (Disable/Enable) Kill ADB server at each start echo. & echo [7] (Disable/Enable) ADB connect at each start echo. & echo [8] Replace ADB from chinese emulators echo. & echo [9] Why can't I toggle certain settings above? echo. & echo [10] Reset Settings echo. & echo [11] (Disable/Enable) AutoMode echo. & echo. echo ======================================================================================================================= set opt2_choice=-1 set /p opt2_choice= Please input the index number of option and press ENTER: echo. & echo. if "%opt2_choice%"=="0" goto MENU if "%opt2_choice%"=="1" goto Region_setting if "%opt2_choice%"=="2" goto Proxy_setting if "%opt2_choice%"=="3" goto Emulator_Setup if "%opt2_choice%"=="4" goto Keep_local_changes if "%opt2_choice%"=="5" goto Branch_setting if "%opt2_choice%"=="6" goto settings_KilADBserver if "%opt2_choice%"=="7" goto settings_ADBconnect if "%opt2_choice%"=="8" goto menu_ReplaceAdb if "%opt2_choice%"=="9" goto Reset_setting if "%opt2_choice%"=="10" goto Reset_setting if "%opt2_choice%"=="11" goto AutoMode echo Please input a valid option. goto ReturnToSetting
:Region_setting echo The current Download Region is: %Region% echo Chinese users, it is recommended to switch to Gitee, Option [2] echo [1] Origin (Github) ; [2] CN mirror (Gitee) set opt3_choice=-1 set /p opt3_choice= Please input the option and press ENTER: echo ======================================================================================================================= if "%opt3_choice%"=="1" ( call command\Config.bat Region origin && goto PleaseRerun ) if "%opt3_choice%"=="2" ( call command\Config.bat Region cn && goto PleaseRerun ) goto ReturnToSetting
:Realtime_mode call command\Config.bat RealtimeMode if "%FirstRun%"=="yes" ( set FirstRun=no && call command\Config.bat FirstRun %FirstRun% ) goto PleaseRerun
:AutoMode echo. & echo [*] Select your DEFAULT Server/GUI Language echo ^| echo ^|-- [1] EN echo ^| echo ^|-- [2] CN echo ^| echo ^|-- [3] JP echo ^| echo ^|-- [4] TW echo. echo ======================================================================================================================= set choice=0 set /p choice= Please input the option and press ENTER: echo ======================================================================================================================= if "%choice%"=="1" set DefaultServer=en && call command\Config.bat DefaultServer %DefaultServer% if "%choice%"=="2" set DefaultServer=cn && call command\Config.bat DefaultServer %DefaultServer% if "%choice%"=="3" set DefaultServer=jp && call command\Config.bat DefaultServer %DefaultServer% if "%choice%"=="4" set DefaultServer=tw && call command\Config.bat DefaultServer %DefaultServer% call command\Config.bat AutoMode goto PleaseRerun
:Keep_local_changes call command\Config.bat KeepLocalChanges goto ReturnToSetting
:settings_KilADBserver call command\Config.bat AdbKillServer goto ReturnToSetting
:settings_ADBconnect call command\Config.bat Adbconnect goto ReturnToSetting
:Proxy_setting call command\Get.bat Proxy if "%state_globalProxy%"=="enable" ( echo Global Proxy: enabled ) else ( echo Global Proxy: disabled ^(DEFAULT^) ) echo. & echo. echo If Global Proxy is enabled, the Proxy Server of current CMD window will be: echo HTTP_PROXY = %proxyHost%:%httpPort% echo HTTPS_PROXY = %proxyHost%:%httpsPort% set opt6_opt3_choice=0 echo. & echo To (disable/enable) the Global Proxy, please enter T; echo To reset to the default Proxy Server, please enter Y; echo To customize the Proxy Host or Port, please enter N; set /p opt6_opt3_choice= Press ENTER to cancel: echo. setlocal EnableDelayedExpansion if /i "%opt6_opt3_choice%"=="T" ( call command\Config.bat Proxy ) else if /i "%opt6_opt3_choice%"=="Y" ( call command\Config.bat ProxyHost http://127.0.0.1 call command\Config.bat Http 1080 call command\Config.bat Https 1080 echo The Proxy Server has been reset to the default. call command\Config.bat Proxy enable ) else if /i "%opt6_opt3_choice%"=="N" ( set /p opt6_opt3_proxyHost= Please input - Proxy Host ^(DEFAULT http://127.0.0.1 ^): set /p opt6_opt3_httpPort= Please input - Http Port ^(DEFAULT 1080 ^): set /p opt6_opt3_httpsPort= Please input - Https Port ^(DEFAULT 1080 ^): if "!opt6_opt3_proxyHost!"=="" ( set "opt6_opt3_proxyHost=http://127.0.0.1" ) if "!opt6_opt3_httpPort!"=="" ( set "opt6_opt3_httpPort=1080" ) if "!opt6_opt3_httpsPort!"=="" ( set "opt6_opt3_httpsPort=1080" ) call command\Config.bat ProxyHost !opt6_opt3_proxyHost! call command\Config.bat Http !opt6_opt3_httpPort! call command\Config.bat Https !opt6_opt3_httpsPort! echo. call command\Config.bat Proxy enable echo The custom Proxy Server has been set successfully. echo Please re-perform this step here to confirm the modification. ) else ( echo Invalid input. Cancelled. goto ReturnToSetting ) endlocal echo. & echo Please re-run this batch to make the settings take effect. echo Please re-run the "alas.bat" to make the settings take effect. goto PleaseRerun
:Branch_setting call command\Config.bat Branch goto ReturnToSetting
:Reset_setting echo. & echo After updating this batch, if the new settings cannot be toggled, you need to delete "config\deploy.ini". & echo But this will reset all the above settings to default. set opt3_opt10_choice=0 echo. & echo To delete the settings, please enter Y; set /p opt3_opt10_choice= Press ENTER to cancel: echo. if /i "%opt3_opt10_choice%"=="Y" ( del /Q config\deploy.ini >NUL 2>NUL echo The "config\deploy.ini" has been deleted, please try changing the settings again. ) else ( echo Invalid input. Cancelled. ) goto ReturnToSetting
:menu_ReplaceAdb cls echo ======================================================================================================================= echo ======== Different version of ADB will kill each other when starting. echo ==== Chinese emulators (NoxPlayer, LDPlayer, MemuPlayer, MuMuPlayer) use their own adb, echo == instead of the one in system PATH, so when they start they kill the adb.exe that Alas is using echo == so, you need replace the ADB in your emulator with the one Alas is using. echo ======================================================================================================================= echo. echo. & echo [0] Return to the Main Menu echo. & echo [1] Replace NoxPlayer ADB echo. & echo [2] Replace LDplayer ADB echo. & echo [3] Replace Memu ADB echo. & echo. echo ======================================================================================================================= set opt4_choice=-1 set /p opt4_choice= Please input the index number of option and press ENTER: echo. & echo. if "%opt4_choice%"=="0" goto MENU if "%opt4_choice%"=="1" goto replace_nox if "%opt4_choice%"=="2" goto replace_ldplayer if "%opt4_choice%"=="3" goto replace_memu echo Please input a valid option. goto menu_ReplaceAdb
rem ================= EMULATOR SETTINGS =================
:replace_nox reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo>nul 2>nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == NoxAppPlayer detected, Proceeding... ) else ( echo ======================================================================================================================= echo == NoxAppPlayer not detected echo Press any key to back main menu pause > NUL goto ReturnToMenu ) :NOX for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath
) do set InstallPath=%%M %adbBin% kill-server > nul 2>&1 "%InstallPath%\bin\nox_adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false" if "%MATCH%"=="true" ( echo Version already match with ALAS ADB version && echo Press any key to back main menu && pause > NUL ) echo f | xcopy /Y "%InstallPath%\bin\adb.exe" "%InstallPath%\bin\adb.exe.bak" >nul echo f | xcopy /Y "%InstallPath%\bin\nox_adb.exe" "%InstallPath%\bin\nox_adb.exe.bak" >nul xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\" >nul echo f | xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\nox_adb.exe" >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == Success echo == Press any key to back main menu pause > NUL goto ReturnToMenu ) else ( echo ======================================================================================================================= echo == Error, you may not have permission to replace the file echo == try run this batch as administrator echo Press any key to back main menu pause > NUL goto :eof ):replace_ldplayer set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer reg query HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer>nul 2>nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == LDplayer detected, Proceeding... ) else ( set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer64 echo ======================================================================================================================= echo == LDplayer64 detected, Proceeding... ) :LD for /f "usebackq tokens=2,* skip=2" %%L IN (
reg query "%LDREG%" /v InstallDir
) do set InstallDir=%%M %adbBin% kill-server > nul 2>&1 "%InstallDir%\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false" if "%MATCH%"=="true" ( echo Version already match with ALAS ADB version && echo Press any key to back main menu && pause > NUL ) echo f | xcopy /Y "%InstallDir%\adb.exe" "%InstallDir%\adb.exe.bak" >nul xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallDir%\" >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == Success echo == Press any key to back main menu pause > NUL goto ReturnToMenu ) else ( echo ======================================================================================================================= echo == Error, you may not have permission to replace the file echo == try run this batch as administrator echo Press any key to back main menu pause > NUL goto ReturnToMenu ):process_checker setlocal EnableDelayedExpansion set process=(MEmu.exe Bluestacks.exe Nox.exe dnplayer.exe NemuHeadless.exe ) for %%i in %process% do ( tasklist /nh /fi "IMAGENAME EQ %%i" 2>NUL | find /i /n "%%i">NUL if !ERRORLEVEL! EQU 0 ( CALL :ProcessFound %%i )
) goto :eof
:ProcessFound echo ======================================================================================================================= ECHO == %1 is running echo ======================================================================================================================= if "%1"=="dnplayer.exe" goto process_ldplayer if "%1"=="Nox.exe" goto process_nox if "%1"=="MEmu.exe" goto process_memu if "%1"=="Bluestacks.exe" goto process_bluestacks goto :eof
:process_ldplayer set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer reg query HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer>nul 2>nul if %errorlevel% equ 0 ( echo == LDplayer 32 bit detected echo ======================================================================================================================= ) else ( set LDREG=HKEY_CURRENT_USER\SOFTWARE\XuanZhi\LDPlayer64 echo == LDplayer 64 bit detected echo ======================================================================================================================= ) for /f "usebackq tokens=2,* skip=2" %%L IN (
reg query %LDREG% /v InstallDir
) do set InstallDir=%%M "%InstallDir%\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false" if "%MATCH%"=="false" ( echo == Wrong ADB version... echo == We will replace your ADB, re-run your server choice after that you back to main menu echo ======================================================================================================================= goto LD ) rem %adbBin% devices | find /i "emulator-5554" >NUL && set "EMULATOR=true" || set "EMULATOR=false" set "EMULATOR=true" if "%EMULATOR%"=="true" ( echo == Your LDplayer will be restarted, wait... @cd/d "%InstallDir%" dnconsole.exe quit --index all @cd/d "%root%" start command\taskkill.bat timeout /t 3 >nul %adbBin% kill-server %adbBin% devices >nul timeout /t 1 >nul start /d "%InstallDir%" dnplayer.exe echo Press any key to continue when your LDplayer completely started pause > nul ) goto :eof:process_nox echo == NoxAppPlayer is detected for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath
) do set InstallPath=%%M "%InstallPath%\bin\nox_adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false" if "%MATCH%"=="false" ( echo == Wrong ADB version... echo == We will replace your ADB, re-run your server choice after that you back to main menu echo ======================================================================================================================= goto NOX ) goto :eof:process_memu echo == MEmu is detected for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation
) do set InstallLocation=%%M "%InstallLocation%\MEmu\adb.exe" version | find /i "29.0.6-6198805" >NUL && set "MATCH=true" || set "MATCH=false" if "%MATCH%"=="false" ( echo == Wrong ADB version... echo == We will replace your ADB, re-run your server choice after that you back to main menu echo ======================================================================================================================= goto MEMU ) goto :eof:process_bluestacks echo == Bluestacks is detected goto :eof
:ProcessNotFound ECHO %1 is not running echo ======================================================================================================================= goto :eof
rem ================= EMULATOR SETUP MENU =================
:Emulator_Setup cls if NOT exist config\alas.ini ( echo f | xcopy config\template.ini config\alas.ini > nul ) echo ======================================================================================================================= echo == It seems like this is the first time that you run this program echo == You may need to configure the connection to your emulator echo ======================================================================================================================= echo. echo. & echo [1] Manual Setup echo. & echo [2] NoxAppPlayer Automatic Connection echo. & echo [3] Bluestacks Hyper-V Beta Automatic Connection echo. & echo [4] MEmu Automatic Connection echo. & echo [0] Return to the Main Menu echo. & echo. echo ======================================================================================================================= set opt55_choice=-1 set /p opt55_choice= Please input the index number of option and press ENTER: echo. & echo. if "%opt55_choice%"=="1" goto Serial_setting if "%opt55_choice%"=="2" goto Settings_NoxSerial if "%opt55_choice%"=="3" goto Realtime_mode if "%opt55_choice%"=="4" goto Settings_MemuSerial if "%opt55_choice%"=="0" goto MENU echo Please input a valid option. goto Emulator_Setup
:Emulator_SetupFirstRun cls if "%FirstRun%"=="no" goto :eof set FirstRun=yes echo ======================================================================================================================= echo == It seems like this is the first time that you run this program echo == You may need to configure the connection to your emulator echo ======================================================================================================================= echo. echo. & echo [1] Manual Setup echo. & echo [2] NoxAppPlayer Automatic Connection echo. & echo [3] Bluestacks Hyper-V Beta Automatic Connection ( ONLY TO HYPER-V VERSION, FOR NORMAL BLUESTACKS USE MANUAL SETUP ) echo. & echo [4] MEmu Automatic Connection echo. & echo [0] Return to the Main Menu echo. & echo. echo ======================================================================================================================= set opt55_choice=-1 set /p opt55_choice= Please input the index number of option and press ENTER: echo. & echo. if "%opt55_choice%"=="1" call :Serial_setting if "%opt55_choice%"=="2" goto Settings_NoxSerial if "%opt55_choice%"=="3" goto Realtime_mode if "%opt55_choice%"=="4" goto Settings_MemuSerial if "%opt55_choice%"=="0" goto MENU echo Please input a valid option. goto Emulator_SetupFirstRun
rem ================= MEMU SETTINGS =================
:replace_memu reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == Memu detected, Proceeding... ) else ( echo ======================================================================================================================= echo == Memu not detected echo == Press any key to back main menu pause > NUL goto ReturnToMenu ) for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation
) do set InstallLocation=%%M %adbBin% kill-server > nul 2>&1 echo f | xcopy /Y "%InstallLocation%\MEmu\adb.exe" "%InstallLocation%\MEmu\adb.exe.bak" >nul xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallLocation%\MEmu\" >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == Success echo == Press any key to back main menu pause > NUL goto ReturnToMenu ) else ( echo ======================================================================================================================= echo == Error, you may not have permission to replace the file echo == try run this batch as administrator echo Press any key to back main menu pause > NUL goto ReturnToMenu ):Settings_MemuSerial reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == MEmu detected, Proceeding... ) else ( echo ======================================================================================================================= echo == MEmu not detected echo == Press any key to back Emulator Settings Menu pause > NUL goto Emulator_Setup ) for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MEmu" /v InstallLocation
) do set InstallLocation=%%M %adbBin% kill-server > nul 2>&1 echo f | xcopy /Y "%InstallLocation%\MEmu\adb.exe" "%InstallLocation%\MEmu\adb.exe.bak" >nul xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallLocation%\MEmu\" >nul echo ======================================================================================================================= echo == Please input the instance of your MEmu echo == if you have only one instance type 0 or press Enter echo == the first instance will always be 0, and the subsequent ones will follow the numerical order echo ======================================================================================================================= set index=0 set /p index= Please input the instance of your MEmu, Press C to back Emulator Settings Menu: if /i "%index%"=="C" ( goto EmulatorSetup ) echo ======================================================================================================================= if "%index%"=="0" ( set folderName=MEmu ) else ( set folderName=MEmu%index% ) set MEmuPathTemp=\MEmu\MemuHyperv VMs\ set MEmuPath=%folderName%\%folderName%.memu set MEmuPath=%MEmuPath: =% set MEmuBoxPath="%InstallLocation%%MEmuPathTemp%%MEmuPath%" for /f tokens^=8delims^=^" %%e in ('findstr /i "5555" %MEmuBoxPath%') do ( set MEmuAdbPort=%%e ) echo %folderName% adb port:%MEmuAdbPort% set SerialMEmu=127.0.0.1:%MEmuAdbPort% echo ======================================================================================================================= echo == connecting at %SerialMEmu% %adbBin% connect %SerialMEmu% | find /i "connected to" >nul if errorlevel 1 ( echo ======================================================================================================================= echo == The connection was not successful on SERIAL: %SerialMEmu% echo == Check if your emulator is open and ADB debug is ON pause > NUL goto Settings_MemuSerial ) call command\Config.bat Serial %SerialMEmu% if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate %SerialMEmu% ) else ( call command\ConfigAlas.bat SerialAlas %SerialMEmu% ) set FirstRun=no call command\Config.bat FirstRun %FirstRun% echo ======================================================================================================================= echo == The connection was Successful on SERIAL: %SerialMEmu% echo ======================================================================================================================= echo == Old Serial: %SerialAlas% echo == New Serial: %SerialMEmu% echo ======================================================================================================================= echo == The connection was Successful on SERIAL: %SerialMEmu% echo. & echo Please re-run the "alas.bat" to make the settings take effect. pause > NUL goto PleaseRerun:Settings_NoxSerial reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo >nul if %errorlevel% equ 0 ( echo ======================================================================================================================= echo == NoxAppPlayer detected, Proceeding... ) else ( echo ======================================================================================================================= echo == NoxAppPlayer not detected echo Press any key to back Emulator Settings Menu pause > NUL goto Emulator_Setup ) for /f "usebackq tokens=2,* skip=2" %%L in (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DuoDianOnline\SetupInfo" /v InstallPath
) do set InstallPath=%%M %adbBin% kill-server > nul 2>&1 echo f | xcopy /Y "%InstallPath%\bin\adb.exe" "%InstallPath%\bin\adb.exe.bak" >nul echo f | xcopy /Y "%InstallPath%\bin\nox_adb.exe" "%InstallPath%\bin\nox_adb.exe.bak" >nul xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\" >nul echo f | xcopy /Y toolkit\Lib\site-packages\adbutils\binaries\adb.exe "%InstallPath%\bin\nox_adb.exe" >nul echo ======================================================================================================================= echo == Please input the instance of your Nox echo == if you have only one instance type 0 or press Enter echo == the first instance will always be 0, and the subsequent ones will follow the numerical order echo ======================================================================================================================= set index=0 set /p index= Please input the instance of your Nox, press C to back Emulator Settings Menu: if /i "%index%"=="C" ( goto EmulatorSetup ) if "%index%"=="0" ( set folderName=nox ) else ( set folderName=Nox%index% ) set NoxPath=\Bin\BignoxVMS\%folderName%\%folderName%.vbox set NoxPath=%NoxPath: =% set vboxPath="%InstallPath%"%NoxPath% for /f tokens^=8delims^=^" %%e in ('findstr /i "5555" %vboxPath%') do ( set NoxAdbPort=%%e ) set SerialNox=127.0.0.1:%NoxAdbPort% echo ======================================================================================================================= echo == connecting at %SerialNox% %adbBin% connect %SerialNox% | find /i "connected to" >nul if errorlevel 1 ( echo ======================================================================================================================= echo == The connection was not successful on SERIAL: %SerialNox% echo == Check if your emulator is open and ADB debug is ON pause > NUL goto Settings_NoxSerial ) call command\Config.bat Serial %SerialNox% if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate %SerialNox% ) else ( call command\ConfigAlas.bat SerialAlas %SerialNox% ) set FirstRun=no call command\Config.bat FirstRun %FirstRun% echo ======================================================================================================================= echo == The connection was Successful on SERIAL: %SerialNox% echo ======================================================================================================================= echo == Old Serial: %SerialAlas% echo == New Serial: %SerialNox% echo ======================================================================================================================= echo == The connection was Successful on SERIAL: %SerialNox% echo. & echo == Please re-run the "alas.bat" to make the settings take effect. pause > NUL goto PleaseRerun:Serial_setting echo ======================================================================================================================= echo == If you dont know what are doing, check our wiki first: echo https://github.com/LmeSzinc/AzurLaneAutoScript/wiki echo == Current Serial = %SerialDeploy% echo == Enter your HOST:PORT eg: 127.0.0.1:5555 echo ======================================================================================================================= set serial_inputY=0 echo. & echo Would you like to change the current SERIAL?, please enter Y to proceed; set /p serial_inputY= Press ENTER to cancel: echo. setlocal EnableDelayedExpansion if /i "%serial_inputY%"=="Y" ( set /p serial_input= Enter your HOST:PORT ^(DEFAULT 127.0.0.1:5555 ^): if "!serial_input!"=="" ( set "serial_input=127.0.0.1:5555" ) echo ======================================================================================================================= %adbBin% kill-server > nul 2>&1 %adbBin% connect !serial_input! | find /i "connected to" >nul if errorlevel 1 ( echo ======================================================================================================================= echo The connection was not successful on SERIAL: !serial_input! echo == If you use LDplayer, Memu, NoxAppPlayer or MuMuPlayer, you may need replace your emulator ADB. echo == Check our wiki for more info pause > NUL start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/FAQ_en_cn goto Serial_setting ) else ( echo ======================================================================================================================= call command\Config.bat Serial !serial_input! if "%FirstRun%"=="yes" ( call command\ConfigTemplate.bat SerialTemplate !serial_input! ) else ( call command\ConfigAlas.bat SerialAlas !serial_input! ) set FirstRun=no call command\Config.bat FirstRun %FirstRun% echo == The connection was Successful on SERIAL: !serial_input! echo. & echo Please re-run the "alas.bat" to make the settings take effect. pause > NUL goto PleaseRerun ) ) else ( echo Invalid input. Cancelled. goto Emulator_Setup ) echo ======================================================================================================================= echo == Old Serial: %SerialDeploy% echo == New Serial: !serial_input! echo ======================================================================================================================= endlocal echo. & echo Please re-run the "alas.bat" to make the settings take effect. pause > NUL goto PleaseRerun
:AdbConnect if "%FirstRun%"=="yes" goto Emulator_Setup if "%KillServer%"=="enable" ( %adbBin% kill-server > nul 2>&1 ) if "%AdbConnect%"=="disable" goto :eof %adbBin% connect %SerialDeploy% | find /i "connected to" >nul echo ======================================================================================================================= if errorlevel 1 ( echo == The connection was not successful on SERIAL: %SerialDeploy% echo == If you use LDplayer, Memu, NoxAppPlayer or MuMuPlayer, you may need replace your emulator ADB. echo == Check our wiki for more info pause > NUL start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/FAQ_en_cn goto Serial_setting echo ======================================================================================================================= ) else ( %pyBin% -m uiautomator2 init echo ======================================================================================================================= echo == The connection was Successful on SERIAL: %SerialDeploy% ) goto :eof
:CheckBsBeta call :process_checker if "%RealtimeMode%"=="disable" ( goto AdbConnect ) if Not "%DefaultBluestacksInstance%"=="unknown" ( goto CheckBsBeta2) echo ======================================================================================================================= echo == ^| Please input which instance of your Bluestacks Hyper-V Beta you will use echo == ^| if you have only one Bluestacks Hyper-V Beta instance type 0 or press Enter echo == ^| the first instance will always be 0, and the subsequent ones will follow the numerical order echo ======================================================================================================================= set DefaultBluestacksInstance=0 set /p DefaultBluestacksInstance= Please input the instance of your Bluestacks Hyper-V Beta call command\Config.bat DefaultBluestacksInstance %DefaultBluestacksInstance% rem if /i "%DefaultBluestacksInstance%"=="C" ( goto EmulatorSetup ) echo ======================================================================================================================= rem for /f skip^=1^ tokens^=17^ delims^=^" %%a in ('tasklist /fi "imagename eq bluestacks.exe" /fo:csv /v /fi "status ne NOT RESPONDING"') do ( set WINDOW=%%a ) rem rem set WINDOW=%WINDOW:"=% rem set WINDOW=%WINDOW: =% rem if not "%WINDOW%"=="BlueStacks" ( rem set WINDOW=%WINDOW:~10,1% rem echo == BlueStacks instance %WINDOW% detected rem ) else ( rem echo == Bluestacks instance 1 detected rem ) rem if "%WINDOW%"=="BlueStacks" ( rem set folderName=Android rem ) else ( rem set folderName=Android%WINDOW% rem ) :CheckBsBeta2 if "%DefaultBluestacksInstance%"=="0" ( set folderName=Android ) else ( set folderName=Android_%DefaultBluestacksInstance% ) set HYPERVREG=HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks_bgp64_hyperv\Guests\%folderName%\Config set HYPERVREG=%HYPERVREG: =% echo == ^| Connecting with realtime mode...
for /f "tokens=3" %%a in ('reg query %HYPERVREG% /v BstAdbPort') do (set /a port = %%a) set SerialRealtime=127.0.0.1:%port% echo ======================================================================================================================= if "%KillServer%"=="enable" ( %adbBin% kill-server > nul 2>&1 ) echo == ^| connecting at %SerialRealtime% in Bluestacks instance: %DefaultBluestacksInstance% %adbBin% connect %SerialRealtime% > nul if "%FirstRun%"=="yes" ( call command\Config.bat Serial %SerialRealtime% call command\ConfigTemplate.bat SerialTemplate %SerialRealtime% set FirstRun=no call command\Config.bat FirstRun %FirstRun% ) if "%SerialRealtime%"=="%SerialAlas%" if "%PackageName%"=="com.YoStarEN.AzurLane" if "%GUI%"=="EN" ( echo == ^| The serial has not been changed since the last time goto ShowSerial ) if "%GUI%"=="EN" ( call command\ConfigAlas.bat SerialAlas %SerialRealtime% call command\ConfigAlas.bat AzurLanePackage com.YoStarEN.AzurLane call command\Config.bat Serial %SerialRealtime% ) else ( call command\ConfigAlas.bat SerialAlas %SerialRealtime% call command\Config.bat Serial %SerialRealtime% ) :ShowSerial for %%i in (*.) do if not "%%i"=="LICENSE" del /q "%%i" echo ======================================================================================================================= echo == ^| Old Serial: %SerialAlas% echo == ^| New Serial: %SerialRealtime% echo ======================================================================================================================= %pyBin% -m uiautomator2 init echo ======================================================================================================================= echo == ^| The connection was Successful on SERIAL: %SerialRealtime% goto :eof
rem ================= FUNCTIONS =================
REM :CheckAdbConnect REM for /f "tokens=1*" %%g IN ('%adbBin% connect 127.0.0.1:5555') do set adbCheck=%%g REM if "%adbCheck%"=="cannot" REM echo %adbCheck%
:ReturnToSetting echo. & echo Press any key to continue... pause > NUL goto Setting
:ReturnToMenu echo ======================================================================================================================= echo == Press any key to back to main menu... pause > NUL goto MENU
:PleaseRerun echo ======================================================================================================================= echo == Press any key to exit... pause > NUL exit
:ExitIfGit :: Check whether already exist .git folder if exist .git\ ( echo ======================================================================================================================= echo == The Initial Deployment has been done. Please delete the ".git" folder before performing this action. call :PleaseRerun ) goto :eof
:ExitIfNotPython if NOT exist toolkit\python.exe ( echo ======================================================================================================================= echo == The Initial Deployment was not done correctly. Please delete entire folder and reinstall from scratch. start https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/Installation_en call :PleaseRerun )
:UpdateChecker_Alas if "%IsUsingGit%"=="no" goto :eof if "%Region%"=="cn" goto UpdateChecker_AlasGitee for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set cfg_branch=%%i "%curlBin%" -s https://api.github.com/repos/lmeszinc/AzurLaneAutoScript/commits/%cfg_branch%?access_token=%GithubToken% > "%root%\toolkit\api_git.json" for /f "skip=1 tokens=2 delims=:," %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED sha SET sha=%%I set sha=%sha:"=% set sha=%sha: =% for /f "skip=14 tokens=3 delims=:" %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED message SET message=%%I set message=%message:"=% set message=%message:,=% set message=%message:\n=% set message=%message:\n\n=% set message=%message:(=% set message=%message:)=% SET message=%message:~1% for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set BRANCH=%%i for /f "delims=" %%i IN ('%gitBin% log -1 "--pretty=%%H"') DO set LAST_LOCAL_GIT=%%i for /f "tokens=1,2" %%A in ('%gitBin% log -1 "--format=%%h %%ct" -- .') do ( set GIT_SHA1=%%A call :gmTime GIT_CTIME %%B )
:UpdateChecker_AlasGitee if "%Region%"=="origin" goto time_parsed for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set cfg_branch=%%i "%curlBin%" -s https://gitee.com/api/v5/repos/lmeszinc/AzurLaneAutoScript/commits/%cfg_branch% > "%root%\toolkit\api_git.json" for /f "tokens=5 delims=:," %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED sha SET sha=%%I set sha=%sha:"=% set sha=%sha: =% for /f "tokens=25 delims=:" %%I IN (%root%\toolkit\api_git.json) DO IF NOT DEFINED message SET message=%%I set message=%message:"=% set message=%message:,=% set message=%message:\ntree=% set message=%message:\n\n=% set message=%message:(=% set message=%message:)=% SET message=%message:~1% for /f %%i in ('%gitBin% rev-parse --abbrev-ref HEAD') do set BRANCH=%%i for /f "delims=" %%i IN ('%gitBin% log -1 "--pretty=%%H"') DO set LAST_LOCAL_GIT=%%i for /f "tokens=1,2" %%A in ('%gitBin% log -1 "--format=%%h %%ct" -- .') do ( set GIT_SHA1=%%A call :gmTime GIT_CTIME %%B )
:AutoRoutine goto %DefaultServer%
:time_parsed if %LAST_LOCAL_GIT% == %sha% ( echo ======================================================================================================================= echo == ^| Remote Git hash: ^| %sha% echo == ^| Remote Git message: ^| %message% echo ======================================================================================================================= echo == ^| Local Git hash: ^| %LAST_LOCAL_GIT% echo == ^| Local commit date: ^| %GIT_CTIME% echo == ^| Current Local Branch: ^| %BRANCH% echo ======================================================================================================================= echo. && echo == ^| Deleting older .PNG under Log folder, it may take while, it depends on the amount of files you have... forfiles /P %logFolder% /S /M .png /D -3 /C "cmd /c del @PATH" 2>nul && forfiles /P %pipLogFolder% /S /M .log /D -7 /C "cmd /c del @PATH" 2>nul echo == Your ALAS is updated, Press any to continue or wait... timeout /t 5 >nul goto :eof ) else ( echo ======================================================================================================================= echo == ^| Remote Git hash: ^| %sha% echo == ^| Remote Git message: ^| %message% echo ======================================================================================================================= echo == ^| Local Git hash: ^| %LAST_LOCAL_GIT% echo == ^| Local commit date: ^| %GIT_CTIME% echo == ^| Current Local Branch: ^| %BRANCH% echo ======================================================================================================================= if "%AutoMode%"=="enable" goto Run_UpdateAlas choice /t 10 /c yn /d y /m "There is an update for ALAS. Download now?" if errorlevel 2 goto :eof if errorlevel 1 goto Run_UpdateAlas )
:gmtime setlocal set /a z=%2/86400+719468,d=z%%146097,y=^(d-d/1460+d/36525-d/146096^)/365,d-=365y+y/4-y/100,m=^(5d+2^)/153 set /a d-=^(153m+2^)/5-1,y+=z/146097400+m/11,m=^(m+2^)%%12+1 set /a h=%2/3600%%24,mi=%2%%3600/60,s=%2%%60 if %m% lss 10 set m=0%m% if %d% lss 10 set d=0%d% if %h% lss 10 set h=0%h% if %mi% lss 10 set mi=0%mi% if %s% lss 10 set s=0%s% endlocal & set %1=%y%-%m%-%d% %h%:%mi%:%s% goto :eof
rem ================= End of File =================