当前位置: 首页 > article >正文

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操作封装成一个可视化工具特别适合管理多个微服务模块的项目。通过简单的菜单选择开发者可以快速完成原本需要大量重复输入命令的工作。

相关文章:

bat脚本从入门到实战:10个常用技巧提升你的Windows自动化效率

BAT脚本从入门到实战:10个常用技巧提升你的Windows自动化效率 在Windows系统中,BAT批处理脚本就像一位不知疲倦的助手,能够24小时待命执行各种重复性任务。想象一下,每天上班第一件事是打开五个开发工具、三个文档和一个数据库客户…...

手把手教你魔改YOLOv8:从CSPPC到SPPELAN的实战调优(新手友好版)

1. 为什么需要魔改YOLOv8? 目标检测是计算机视觉领域最基础也最实用的技术之一,而YOLOv8作为当前最流行的实时检测框架,凭借其出色的速度和精度平衡,已经成为工业界和学术界的首选。但在实际项目中,我们经常会遇到一些…...

雨课堂运动与健康网课高效学习指南

1. 雨课堂运动与健康网课学习资源整合 第一次接触雨课堂的运动与健康网课时,我和很多同学一样手忙脚乱。平台上的资料分散在各个角落,视频、文档、测试题混在一起,根本不知道从哪里开始。后来摸索出一套资源整理方法,效率直接翻倍…...

Comsol 中微环谐振腔的环形波导耦合:波束包络与波动光学模块对比

Comsol微环谐振腔,环形波导耦和。 对比波束包络和波动光学两个不同模块。在光学领域,微环谐振腔因其独特的光学特性在众多应用中发挥着关键作用,比如光滤波、光传感等。而 Comsol 作为一款强大的多物理场仿真软件,为我们深入研究微…...

Axure Mac全汉化3步法:设计师效率提升实战指南

Axure Mac全汉化3步法:设计师效率提升实战指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是否曾…...

颠覆式窗口置顶:Topit重新定义Mac多任务处理体验

颠覆式窗口置顶:Topit重新定义Mac多任务处理体验 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在数字工作空间爆炸式增长的今天,Mac用…...

从51单片机到STM32:我的裸机架构升级踩坑实录(附代码片段)

从51单片机到STM32:我的裸机架构升级踩坑实录 第一次用STM32F103替换掉手头的STC89C52时,我对着闪烁的LED灯陷入了沉思——这个32位的"怪兽"显然不应该继续沿用51那套超级循环的编程方式。三年前那个在延时函数里死等按键响应的菜鸟程序员&…...

PCB设计实战:数字模拟隔离的元件抉择——从0Ω电阻到磁珠的精准应用

1. 数字模拟隔离的基础原理与挑战 在混合信号电路设计中,数字电路和模拟电路就像两个性格迥异的邻居。数字电路工作时会产生高频开关噪声,就像隔壁装修时的电钻声;而模拟电路对噪声极其敏感,如同正在录音的麦克风。这时候&#xf…...

SDMatte镜像结构解析:/opt/sdmatte-web与模型目录映射关系

SDMatte镜像结构解析:/opt/sdmatte-web与模型目录映射关系 1. SDMatte简介 SDMatte 是一款面向高质量图像抠图场景的 AI 模型,特别适合处理以下任务: 主体分离与提取透明物体抠图(玻璃、薄纱等)复杂边缘精修&#x…...

影墨·今颜小红书模型与Claude Code的协同编程应用设想

影墨今颜小红书模型与Claude Code的协同编程应用设想 最近在琢磨一个挺有意思的组合:让擅长生成代码的Claude Code和专门为小红书内容优化的影墨今颜模型一起干活。听起来有点跨界,但仔细想想,这俩搭档起来,说不定能解决不少实际…...

避开这5个坑!VS2019+Doxygen注释实战:从代码规范到HTML文档生成

VS2019Doxygen注释实战:5个典型陷阱与高效解决方案 在C项目开发中,良好的代码文档是团队协作的基石。Visual Studio 2019与Doxygen的组合为开发者提供了强大的自动化文档生成能力,但许多团队在实际应用中常陷入一些看似简单却影响深远的陷阱。…...

九齐单片机NYIDE开发环境避坑指南:从仿真器到实物板的温度检测实战(以062E为例)

九齐单片机NYIDE开发环境避坑指南:从仿真器到实物板的温度检测实战(以062E为例) 在嵌入式开发领域,仿真环境与实物硬件之间的差异常常成为工程师的"隐形杀手"。特别是对于九齐单片机这类资源紧凑型芯片,开发…...

KKManager终极指南:三步轻松管理你的游戏Mod和插件

KKManager终极指南:三步轻松管理你的游戏Mod和插件 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager KKManager是一款专为Illusion系列游戏设计的M…...

信创实践:Nacos 2.4.1 与人大金仓 Kingbase 的深度适配与性能调优

1. 为什么需要从MySQL迁移到人大金仓Kingbase? 最近几年,国产数据库的发展速度确实让人惊喜。作为一线开发者,我亲身体验了从MySQL迁移到人大金仓Kingbase的全过程。说实话,刚开始心里也没底,毕竟MySQL用得太顺手了。但…...

OpenClaw与nanobot镜像结合:打造个人AI研究助手全流程

OpenClaw与nanobot镜像结合:打造个人AI研究助手全流程 1. 为什么需要个人AI研究助手? 作为一名经常需要阅读大量论文的研究者,我发现自己每天要重复处理许多机械性工作:在多个学术平台检索最新文献、下载PDF并分类存储、提取关键…...

[OS] 非阻塞键盘输入检测(kbhit)在实时交互应用中的实现与优化

1. 为什么需要非阻塞键盘输入检测? 想象一下你在玩一个简单的终端游戏,比如贪吃蛇。如果游戏在每次等待你按键时都暂停执行,直到你按下某个键才继续,那体验会有多糟糕?这就是阻塞式输入的问题——程序会卡在输入等待环…...

顺利毕业!一个能读懂学校要求的AI论文助手

作为一名即将毕业的大四学生,写毕业论文这件事,就像一座大山压在我心头。选题没方向,文献看不懂,最要命的是,学校发的那个十几页的写作要求,看得我头都大了,生怕自己辛辛苦苦写出来,…...

微信支付商家券:从创建到核销的全链路开发实战

1. 微信支付商家券的核心价值与应用场景 商家券是微信支付为商户提供的数字化营销工具,本质上是一种电子优惠凭证。与传统的纸质优惠券相比,商家券最大的优势在于能够实现全链路数字化管理。我在帮一家连锁咖啡品牌接入商家券时发现,他们的线…...

每日股票分析自动化:基于Ollama的daily_stock_analysis镜像实战教程

每日股票分析自动化:基于Ollama的daily_stock_analysis镜像实战教程 1. 为什么需要本地化AI股票分析工具 在金融投资领域,及时获取准确的股票分析至关重要。传统方式需要人工收集数据、分析图表、撰写报告,整个过程耗时耗力。而基于大语言模…...

s2-pro GPU显存优化实践:FP16推理+动态批处理降低30%显存占用

s2-pro GPU显存优化实践:FP16推理动态批处理降低30%显存占用 1. 引言 语音合成技术正在快速改变内容创作的方式,但专业级模型的显存占用问题一直困扰着开发者。Fish Audio开源的s2-pro作为专业级语音合成模型镜像,虽然提供了出色的音质和音…...

CH340系列芯片选型指南与外围电路设计实战

1. CH340系列芯片选型指南 第一次接触CH340系列芯片时,我被它丰富的型号搞得眼花缭乱。作为国内最常用的USB转串口芯片之一,CH340系列凭借稳定的性能和亲民的价格,在嵌入式开发领域占据重要地位。但面对十几种不同型号,新手往往会…...

零基础玩转CTFShow Web1-7:手把手教你用Burp Suite和蚁剑拿flag

零基础玩转CTFShow Web1-7:从工具配置到实战渗透全指南 第一次接触CTF比赛时,看着其他选手在终端里敲出神秘代码就能拿到flag,总觉得这是黑客才能掌握的"黑魔法"。直到自己动手尝试才发现,只要掌握正确的工具和方法&…...

Audio Pixel Studio效果惊艳集锦:10类垂直场景语音生成+分离真实案例

Audio Pixel Studio效果惊艳集锦:10类垂直场景语音生成分离真实案例 1. 引言:当声音创作变得触手可及 想象一下,你正在为一个短视频项目寻找合适的旁白配音,但预算有限,专业配音师的价格让你望而却步。或者&#xff…...

从定时器到任务调度:用Qt QTimer和QThreadPool构建一个轻量级后台任务管理器

从定时器到任务调度:用Qt QTimer和QThreadPool构建轻量级后台任务管理器 在开发中型Qt应用时,后台任务管理往往成为架构设计的痛点。当简单的定时器无法满足复杂业务需求,当主线程被耗时任务拖累导致界面卡顿,开发者需要一套更优雅…...

MPC模型下四节电池SOC均衡控制技术:全网首发的效果超群解决方案

MPC模型预测控制四节电池SOC均衡 [1]全网首发电池SOC均衡控制,当前领域国内期刊罕有有人发。 [2]效果超群,根据电池均衡路径完美规划均衡电流,电流由大到小,避免均衡后期均衡路径问题。电池均衡这玩意儿听着高大上,说白…...

【AI工程化硬核考点】:FastAPI 2.0 + async/await + StreamingResponse三重协程调度机制精讲

第一章:FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,尤其适用于大语言模型(LLM)推理、实时日志推送、AI 生成内容分块返回等场景。面试官常聚…...

Android13 PendingIntent Flags: Choosing Between FLAG_IMMUTABLE and FLAG_MUTABLE for Optimal Performa

1. Android13 PendingIntent的Flags变革解析 最近在将项目从Android11迁移到Android13时,我遇到了一个典型的兼容性问题:Targeting S (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a Pendin…...

FastAPI流式响应性能断崖式下跌?3个隐藏内存泄漏点,资深工程师连夜修复的5行关键代码

第一章:FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,尤其在大语言模型(LLM)推理、实时 token 生成、语音转文字等 AI 场景中成为高频考点。面…...

解决Docker容器中英伟达GPU驱动报错:nvidia-container-toolkit安装指南

1. 为什么Docker容器无法识别英伟达GPU? 最近在帮朋友调试一个深度学习项目时,遇到了一个典型问题:当尝试在Docker容器中运行需要GPU加速的应用时,系统报错提示无法找到NVIDIA驱动。错误信息是这样的: Error response …...

Python多线程性能翻倍实录(GIL禁用+细粒度原子操作配置全指南)

第一章:Python无锁GIL环境下的并发模型概览Python 的全局解释器锁(GIL)长期被视为多线程 CPU 密集型任务的瓶颈。然而,随着 CPython 3.13 的正式引入“实验性无锁 GIL”(--without-pymalloc 配合 --with-gildisabled 构…...