Win初始化脚本
简介
每次电脑重启或开机的时候,你是不是也会有很多不可避免的繁琐操作。比如我要配置开发环境,需要进入wsl里面去启动 NGINX、REDIS、MYSQL等服务,需要 WSL 和 WIN 做端口映射等等,极其繁琐...要是能弄个脚本,每次点一下就完成所有操作,那是不是就舒服多了?
前言
每次电脑重启或开机的时候,你是不是也会有很多不可避免的繁琐操作。比如我要配置开发环境,需要进入wsl里面去启动 NGINX、REDIS、MYSQL等服务,需要 WSL 和 WIN 做端口映射等等,极其繁琐…要是能弄个脚本,每次点一下就完成所有操作,那是不是就舒服多了?
操作
操作主要分为两部分,一部分是 WIN 宿主主机的初始化。还有就是 WSL 里面的初始化, WSl 的初始化操作我已经封装成一个运行文件了,可以看我之前的文章 wsl里面使用宝塔。我们写好 WIN 的脚本,再把 WSL 的塞进去就行了,话不多说,直接上脚本:
开机初始化.bat
@echo off
echo Setting up WSL environment and port mapping...
REM Execute init script in WSL
echo Executing WSL init script...
wsl sh ~/init.sh
if %errorlevel% neq 0 (
echo Warning: init.sh execution failed or returned non-zero exit code
echo Continuing with port mapping...
) else (
echo init.sh executed successfully
)
echo.
REM Auto-detect WSL IP address
echo Getting WSL IP address...
for /f "tokens=1" %%i in ('wsl hostname -I') do set WSL_IP=%%i
if "%WSL_IP%"=="" (
echo Error: Cannot get WSL IP address!
echo Please make sure WSL is running
pause
exit /b 1
)
echo WSL IP address: %WSL_IP%
echo Mapping ports: 9003, 12345, 12346
echo.
REM Map port 9003
echo Mapping port 9003...
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=9003 connectaddress=%WSL_IP% connectport=9003
REM Map port 12345
echo Mapping port 12345...
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=12345 connectaddress=%WSL_IP% connectport=12345
REM Map port 12346
echo Mapping port 12346...
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=12346 connectaddress=%WSL_IP% connectport=12346
echo.
echo Port mapping setup completed!
echo Mapped ports:
echo - Local:9003 -^> WSL:%WSL_IP%:9003
echo - Local:12345 -^> WSL:%WSL_IP%:12345
echo - Local:12346 -^> WSL:%WSL_IP%:12346
echo.
echo If any mapping failed, please run this script as Administrator
echo Use "netsh interface portproxy show all" to check current mappings
echo.
echo Press any key to exit...
pause >nul
当然,我还可以把要初始化的东西塞到电脑自启动中去,但是我觉得没有必要,不是每次启动都要这些东西的,这里就不加了。