admin 管理员组文章数量: 1184232
一、什么是
.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
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
脚本
|
六、创建与执行方式
-
用记事本创建
.bat文件,保存时选“ 所有文件 ”,命名如:test.bat - 右键点击 -> “ 以管理员身份运行 ”
-
或在命令行中执行:
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
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:静默模式,无确认提示。
版权声明:本文标题:超越点击,简化任务:掌握Batch脚本自动化工作流的实用教程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771733306a3547951.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论