代码实时上传器
定时扫描项目目录自动清理编译中间产物并同步到 GitHub 仓库。功能定时扫描每 12 小时可配置扫描一次指定目录磁盘清理自动删除编译中间产物.obj/.lst/.m51/.lnp/.htm 等保留源码和工程文件版本库清理移除被 .gitignore 忽略但仍被 git 跟踪的文件自动同步git add → commit → push有变更才提交开机自启通过 VBS 脚本无窗口后台运行零依赖纯 Python 标准库实现文件说明文件 作用autosync.py 主程序定时扫描 磁盘清理 git 同步config.json 配置文件扫描目录、间隔、清理规则start.vbs 无窗口后台启动器快速开始1. 前置条件Python 3.8Git 已安装并配置好身份user.name / user.email目标目录已初始化为 git 仓库并配置了 remote originGitHub 凭据已存储git config --global credential.helper store2. 配置编辑 config.json将 watch_dir 改为你的项目目录路径{watch_dir: C:\\Users\\YourName\\YourProject,interval_hours: 12}根据你的项目类型调整 clean_extensions要删除的文件类型和 keep_extensions保留的文件类型。3. 启动# 前台运行调试用python autosync.py# 后台无窗口运行日常用wscript start.vbs4. 开机自启将 start.vbs 复制到启动目录Copy-Item start.vbs $env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\配置项详解字段 类型 说明watch_dir string 监听的项目目录必须是 git 仓库interval_hours int 扫描间隔小时push_retry int push 失败重试次数push_retry_delay int 重试间隔秒log_dir string 日志目录clean_extensions array 要删除的文件扩展名clean_filenames array 要删除的文件名clean_dirs array 要清空内容的目录名保留目录本身remove_dirs array 要整体删除的目录名keep_extensions array 保留不清理的扩展名优先级最高日志日志文件按日期命名logs/autosync_YYYYMMDD.log控制操作 命令停止 taskkill /F /IM pythonw.exe手动启动 双击 start.vbs查看日志 logs/autosync_YYYYMMDD.log取消开机自启 删除启动目录中的 start.vbs技术要点Windows 环境下 Python 的文件删除被 safe-delete shim 拦截改用 ctypes.windll.kernel32.DeleteFileWWin32 API删文件 cmd /c rmdir /s /q 删目录绕过提交信息自动生成auto-sync: YYYY-MM-DD HH:MM | 变更文件摘要启动时立即执行一次扫描之后按间隔定时执行网址https://github.com/Bogod-hub/Bo-codespace/tree/code-autosync