bat脚本从入门到实战:10个常用技巧提升你的Windows自动化效率
BAT脚本从入门到实战10个常用技巧提升你的Windows自动化效率在Windows系统中BAT批处理脚本就像一位不知疲倦的助手能够24小时待命执行各种重复性任务。想象一下每天上班第一件事是打开五个开发工具、三个文档和一个数据库客户端——这些操作完全可以用一个双击动作替代。批处理脚本的魅力在于它不需要复杂的开发环境一个记事本和几分钟的学习就能让你从重复劳动中解放出来。1. 基础配置打造专业脚本的起手式每个BAT脚本都应该从这几行开始echo off chcp 65001 title 我的自动化脚本 setlocal enabledelayedexpansionecho off让脚本运行时只显示结果不显示命令本身保持界面整洁chcp 65001切换到UTF-8编码彻底解决中文乱码问题title可以自定义命令窗口的标题方便识别多个运行中的脚本setlocal enabledelayedexpansion启用延迟变量扩展这是处理循环中变量的关键实际案例一个规范的脚本开头能避免80%的编码问题和显示混乱2. 变量操作脚本的记忆功能变量是脚本的记忆单元使用得当能让脚本灵活适应各种场景set baseDirC:\Projects set /p userName请输入您的姓名 echo 当前用户是%userName%工作目录在 %baseDir%高级技巧动态拼接路径set fullPath%baseDir%\%projectName%数学运算set /a count%count%1获取当前日期set today%date:~0,4%-%date:~5,2%-%date:~8,2%3. 条件判断让脚本具备思考能力通过条件判断脚本可以根据不同情况执行不同操作if exist C:\temp\lock.file ( echo 检测到锁定文件程序正在运行中 exit /b 1 ) else ( echo C:\temp\lock.file rem 执行主要任务... del C:\temp\lock.file )常用判断条件if %errorlevel% neq 0检查上条命令是否执行成功if %str%quit字符串比较if %count% gtr 10数值比较4. 循环处理批量操作的利器for循环是处理批量任务的终极武器for /r C:\Users %%f in (*.tmp) do ( echo 正在删除临时文件%%f del %%f )循环类型对比参数功能描述典型场景/d仅目录遍历子文件夹/r递归搜索整个目录树/f文件解析处理文本内容/l数字序列重复执行N次5. 文件操作自动化管理的核心文件操作是自动化最常见的使用场景:: 备份重要文件 xcopy D:\Work\*.docx E:\Backup\Work\ /s /y :: 批量重命名 for %%f in (*.jpg) do ( ren %%f vacation_%%~nxf ) :: 查找并删除空文件夹 for /f delims %%d in (dir /s /b /ad ^| sort /r) do rd %%d 2nul提示2nul可以将错误信息重定向到空设备避免脚本显示不必要的信息6. 程序控制一键启动你的工作环境用脚本配置完整的开发环境start C:\Program Files\Microsoft VS Code\Code.exe timeout /t 3 nul start C:\Program Files\Docker\Docker\Docker Desktop.exe start chrome.exe http://localhost:8080实用参数start /min最小化窗口启动timeout /t 5暂停5秒等待程序初始化nul隐藏命令输出7. 用户交互打造友好脚本界面让脚本与用户对话:menu cls echo 主菜单 echo 1. 备份工作文档 echo 2. 清理临时文件 echo 3. 启动开发环境 echo Q. 退出 echo set /p choice请输入您的选择 if %choice%1 goto backup if %choice%2 goto clean if %choice%3 goto startenv if /i %choice%Q exit /b echo 无效输入请按任意键重试... pause nul goto menu8. 错误处理让脚本更健壮完善的错误处理能让脚本在各种情况下都能妥善应对:check_git git --version nul 21 if %errorlevel% neq 0 ( echo Git未安装或未加入PATH环境变量 echo 正在尝试自动配置... set PATH%PATH%;C:\Program Files\Git\bin git --version nul 21 || ( echo 自动配置失败请手动安装Git exit /b 1 ) )关键技巧nul 21同时隐藏标准输出和错误输出||运算符表示或——前一个命令失败时执行后面的命令exit /b 1退出脚本并返回错误代码9. 函数封装构建可复用的代码块虽然BAT脚本的函数比较特殊但合理使用能让代码更清晰:: 计算目录大小的函数 :GetDirSize setlocal set size0 for /r %~1 %%f in (*) do ( set /a size%%~zf ) endlocal set %~2%size% goto :eof :: 调用示例 call :GetDirSize C:\Projects projectSize echo 项目目录大小%projectSize% 字节10. 实战案例自动化Git工作流结合前面所有技巧实现一个完整的Git分支管理脚本echo off chcp 65001 title Git分支管理工具 setlocal enabledelayedexpansion :main cls echo 当前Git仓库状态 git status echo. echo 功能菜单 echo 1. 切换分支 echo 2. 拉取所有分支更新 echo 3. 批量删除已合并分支 echo Q. 退出 echo set /p choice请选择操作 if %choice%1 goto switch_branch if %choice%2 goto pull_all if %choice%3 goto clean_merged if /i %choice%Q exit /b echo 无效输入按任意键继续... pause nul goto main :switch_branch set /p branch请输入要切换的分支名 for /f delims %%d in (dir /b /ad) do ( if exist %%d\.git ( echo 正在处理仓库%%d cd %%d git checkout %branch% 21 | findstr /v Already on || ( echo 切换分支失败 pause ) cd.. ) ) pause goto main :pull_all for /f delims %%d in (dir /b /ad) do ( if exist %%d\.git ( echo 正在更新仓库%%d cd %%d git fetch --all cd.. ) ) echo 所有仓库更新完成 pause goto main :clean_merged set /p target请输入要保留的主分支名如develop for /f delims %%d in (dir /b /ad) do ( if exist %%d\.git ( echo 正在清理仓库%%d cd %%d for /f delims %%b in (git branch --merged %target% ^| findstr /v %target%) do ( git branch -d %%b ) cd.. ) ) echo 已合并分支清理完成 pause goto main这个脚本展示了如何将多个Git操作封装成一个可视化工具特别适合管理多个微服务模块的项目。通过简单的菜单选择开发者可以快速完成原本需要大量重复输入命令的工作。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2453608.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!