main.bat
@echo off
REM 软件描述
echo *===============================================================
echo 检测 golang 项目源代码,发生变化后编译并运行
echo 注意:该辅助依靠 git 实现,需要手动执行 git init 后再运行该辅助
echo Powered by c3RydmFsQHFxLmNvbQ== Date: 2021/11/18 Version: 1.0.1
echo *===============================================================
REM 定义项目路径
set projectPath="D:\Go_WorkSpace\src\study"
REM 定义循环次数
set /A i=0
REM 循环检测begin
:labelCheck
REM 检测是否发生变化,若发生变化则执行编译
cd /d %projectPath% && git status | findstr /C:"git" && (git add . & git commit -m fix & start %~dp0sub_compile.bat)
REM 需要间隔1/4秒,否则怕CPU着不住(原本应该是1/4秒的,因为精确到毫秒比较麻烦,再加上git处理也需要时间,那就精确到秒吧)
timeout /T 1 /NOBREAK >nul
REM 打印循环次数
set /A i+=1
set echostr=已检测运行 %i% 次
tasklist /FI "IMAGENAME eq main.exe" /FI "SESSIONNAME eq Console" | findstr /C:"main.exe" >nul || set echostr=%echostr% :-(
echo %echostr%
REM 循环检测end
goto labelCheck
sub_compile.bat
@echo off
REM 编译并运行程序
REM 该文件由其他文件调用
REM 定义项目路径
REM set projectPath="D:\Go_WorkSpace\src\study"
if not defined projectPath (
echo missing projectPath variable
ping /n 3 127.0.0.1>nul
exit
)
REM 杀掉已经运行的程序
taskkill /F /IM main.exe>nul 2>nul
REM 重新编译运行
cd /d %projectPath%\main && go build && main.exe -c ../config.json -t ../public -tp ../templates
REM 延迟几秒后退出,方便运行结果(被其他文件调用时,就没必要延迟退出了)
REM ping /n 3 127.0.0.1>nul
exit
- Prev: 谷歌浏览器自带的游戏
- Next: 突然大流量访问