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

Windows 中的 bat(批处理)文件处理使用教程典型实例和实战技巧

一、什么是 .bat 文件?

.bat 是批处理文件(Batch file)的扩展名,内部是 Windows 命令的脚本集合,可以自动执行一系列任务。其执行环境是 cmd.exe


二、基本语法讲解

语法含义
@echo off禁用命令回显(更清爽)
echo打印文字
rem::注释
pause暂停,等待任意键
call调用另一个批处理文件
goto跳转到指定标签
if条件判断
for循环结构
%变量名%变量取值
set变量定义

三、基础示例

1. Hello World 示例

@echo off
echo Hello, World!
pause

运行效果:

Hello, World!
请按任意键继续. . .

2. 打开程序或网页

@echo off
start notepad
start https://www.bing.com

3. 条件判断

@echo off
set NAME=Tom
if %NAME%==Tom (echo Hi Tom!
) else (echo You are not Tom!
)

4. 文件批量处理

@echo off
for %%f in (*.txt) do (echo Found: %%f
)

5. 带参数的脚本

@echo off
echo Script name: %0
echo First arg: %1
echo Second arg: %2

调用示例:

test.bat input.txt log.txt

四、实用实例场景

1. 批量重命名文件(添加前缀)

@echo off
setlocal enabledelayedexpansion
for %%f in (*.jpg) do (ren "%%f" "new_%%f"
)

2. 自动备份文件夹

@echo off
set folder=C:\MyData
set backup=D:\Backup\MyData_%DATE:~0,10%
xcopy "%folder%" "%backup%" /E /I /Y
echo Backup done: %backup%

3. 循环 Ping 网络测试

@echo off
:loop
ping 192.168.1.1
timeout /t 5 >nul
goto loop

五、常见技巧与注意事项

技巧说明
setlocal enabledelayedexpansion启用延迟变量展开(变量在循环中更新生效)
> nul抑制命令输出
2>&1将错误输出重定向
exit /b退出当前脚本但不关闭窗口
使用 call 嵌套调用其他 .bat 脚本

六、创建与执行方式

  1. 用记事本创建 .bat 文件,保存时选“所有文件”,命名如:test.bat
  2. 右键点击 -> “以管理员身份运行
  3. 或在命令行中执行:
    C:\> test.bat
    

七、高级用法建议

  • 结合 schtasks 实现定时任务自动运行
  • 搭配 powershell 执行高级命令或脚本
  • 编写 .bat 管理工具,如一键清理临时文件、一键部署工程等

八、其他示例

1. hello_world.bat

功能: 输出一行“Hello World”并暂停窗口

@echo off
echo Hello World!
pause

说明:

  • @echo off:关闭命令显示(避免显示每条命令本身)。
  • echo:打印信息。
  • pause:等待用户按键,防止窗口立即关闭。

2. open_web_notepad.bat

功能:同时打开浏览器与记事本

@echo off
start https://www.baidu.com
start notepad.exe

说明:

  • start:打开指定程序或网页。
  • 支持打开多个内容,常用于快捷启动。

3. backup_folder.bat

功能:备份某文件夹到当前目录下的新建文件夹(以当前日期命名)

@echo off
set folder_to_backup="D:\MyProject"
set today=%date:~0,4%%date:~5,2%%date:~8,2%
set backup_dir=backup_%today%echo Backing up %folder_to_backup% to %backup_dir%...
xcopy /E /I /Y %folder_to_backup% .\%backup_dir%
echo Done.
pause

说明:

  • %date% 提取当前日期。
  • xcopy 进行目录复制:
    • /E:包含子目录。
    • /I:默认目标为目录。
    • /Y:跳过覆盖确认。
  • 修改 folder_to_backup 可自定义源目录。

4. rename_add_prefix.bat

功能:为当前目录下所有 .jpg 文件加上前缀 IMG_

@echo off
set prefix=IMG_for %%f in (*.jpg) do (ren "%%f" "%prefix%%%f"
)echo All files renamed.
pause

说明:

  • for %%f in (*.jpg):循环当前目录所有 JPG 文件。
  • ren:重命名命令。
  • 可修改 prefix 为任意自定义前缀。

5. network_ping_loop.bat

功能:循环 ping 指定地址,并记录网络状态日志

@echo off
set target=8.8.8.8
set logfile=ping_log.txt:loop
echo %time% >> %logfile%
ping -n 1 %target% >> %logfile%
timeout /t 5 >nul
goto loop

说明:

  • ping -n 1:仅 ping 一次。
  • 每 5 秒执行一次,记录时间与 ping 结果。
  • timeout /t 5:等待 5 秒。
  • 可修改 target 为目标 IP 或域名。

6. log_cleanup.bat

功能:删除当前目录及所有子目录下的 .log 文件

@echo off
echo Deleting all .log files in and under %cd%
del /s /q *.log
pause

说明:

  • %cd%:当前目录。
  • del /s /q
    • /s:递归子目录。
    • /q:静默模式,无确认提示。

相关文章:

  • Chrome 136 H265 WebRTC 支持 正式版本已包含
  • JESD204B 探究
  • [FPGA VIDEO IP] VCU
  • SQL Server 数据库重命名
  • 数据转储(go)
  • 麒麟、UOS系统在线打开word文件并提取修订痕迹
  • SpringBoot多工程项目微服务install时如何不安装到本地仓库
  • word模板填充导出-(支持word导出、pdf导出)
  • Langchain+文本摘要-refine
  • 芯片软错误概率探究:基于汽车芯片安全设计视角
  • 理解数据库存储以及查询(集合)
  • 数据科学与计算
  • 免疫细胞靶点“破局战”:从抗体到CAR-T,自免疾病治疗的3大技术突破
  • 【算法学习】哈希表篇:哈希表的使用场景和使用方法
  • ES使用之查询方式
  • 用Power shell脚本批量发布rdl文件到SQL Server Reporting Service
  • Android Framework框架与启动过程初识一
  • uniapp如何获取安卓原生的Intent对象
  • 分布式-redisson
  • 关于 live555延迟优化之缓存区优化“StreamParser::afterGettingBytes() warning: read”” 的解决方法
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”
  • 牛市早报|今年第二批810亿元超长期特别国债资金下达,支持消费品以旧换新
  • 游客曝九寨沟打网约车被出租车围堵,景区回应:当地无合规网约车
  • 日趋活跃!2024年我国数据生产总量同比增长25%
  • 走访中广核风电基地:701台风机如何乘风化电,点亮3000万人绿色生活
  • 特朗普声称中方领导人打了电话,外交部:近期中美元首没有通话