查看: 123|回复: 1

批处理脚本高频命令详解与实战模板

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
批处理脚本(BAT)在Windows日常运维、开发环境配置和自动化任务中依然扮演着重要角色。虽然PowerShell更强大,但BAT因其轻量、兼容性好、不需要额外安装环境等优势,在快速脚本、CI/CD构建步骤和系统部署场景中广泛使用。本文整理高频BAT命令,并提供一个可直接复用的实战模板,覆盖基础控制、编码设置、变量操作、条件判断、循环、文件目录操作、调用跳转、重定向管道等核心技能。

一、基础控制命令
脚本开头常用@echo off关闭命令回显,让输出更干净。echo用于输出信息,echo.输出空行。pause暂停执行并提示“按任意键继续”,常用于调试。rem或::表示注释。title设置窗口标题,cls清屏。示例如下:
  1. @echo off
  2. echo Hello World
  3. :: 这是注释
  4. title 我的脚本
  5. pause
复制代码

二、编码与显示设置
Windows中文环境默认GBK编码,但现代工具链推荐UTF-8。通过chcp 65001切换到UTF-8,并配合> nul屏蔽切换信息输出。color命令设置控制台背景和文字颜色,例如color 0A为黑底绿字。
  1. chcp 65001 > nul
  2. color 0A
复制代码

三、变量操作
使用set定义变量,set /a进行数学运算,set /p获取用户输入。引用变量时用%变量名%。
  1. set var=值
  2. set /a sum=1+1
  3. set /p name=请输入名字:
  4. echo %var%
复制代码

四、条件判断
支持文件存在判断、变量比较和错误级别检测。if exist检查文件或文件夹是否存在,if errorlevel判断上一条命令返回值。注意批处理中比较字符串用==,数字比较也可用equ、neq等。
  1. if exist C:\test.txt (
  2. echo 文件存在
  3. ) else (
  4. echo 文件不存在
  5. )
  6. if %var%==1 echo 等于1
  7. if errorlevel 1 echo 上一条命令失败了
复制代码

五、循环
批处理只有for循环,但功能丰富。遍历当前目录下所有txt文件:for %%f in (*.txt) do echo %%f。计数循环:for /l %%i in (1,1,10) do echo %%i。遍历目录:for /d %%d in (*) do echo %%d。注意在批处理文件中变量引用需用双百分号,在命令行中单百分号即可。

六、文件与目录操作
cd /d支持带盘符切换目录。dir列出文件,copy、move、del、md、rd、ren、type分别对应复制、移动、删除、创建目录、强制删除目录、重命名、显示文件内容。rd /s /q可静默删除非空目录,谨慎使用。
  1. cd /d D:\文件夹
  2. dir
  3. copy 源 目标
  4. move 源 目标
  5. del 文件
  6. md 文件夹名
  7. rd 文件夹名 /s /q
  8. ren 旧名 新名
  9. type 文件
复制代码

七、调用与跳转
call用于调用另一个bat脚本,执行完成后返回当前脚本。start启动程序或文件,可指定新窗口。goto实现无条件的跳转,与:标签配合。exit /b仅退出当前脚本而不关闭命令提示符窗口。
  1. call 另一个脚本.bat
  2. start notepad.exe
  3. goto mylabel
  4. : mylabel
  5. exit /b
复制代码

八、重定向与管道
>将标准输出覆盖写入文件,>>追加写入。2>将错误输出重定向,2> nul屏蔽错误信息。|将前一个命令的输出作为后一个命令的输入,findstr常用作文本过滤。
  1. command > output.txt
  2. command >> output.txt
  3. command 2> nul
  4. ipconfig | findstr IPv4
复制代码

九、实用脚本模板
整合上述技巧,提供一个可直接复用的模板,包含UTF-8支持、管理员权限检查、用户输入、延时等。管理员权限检测利用net session命令,如果失败则%errorlevel%非0。timeout命令在Windows 10+中提供精确延时,/nobreak参数禁止按键跳过。
  1. @echo off
  2. chcp 65001 > nul
  3. title 实用脚本模板
  4. color 0A
  5. :: 判断管理员权限
  6. net session > nul 2>&1
  7. if %errorlevel% neq 0 (
  8. echo 请以管理员身份运行!
  9. pause
  10. exit /b
  11. )
  12. :: 用户输入
  13. set /p name=请输入你的名字:
  14. echo 你好, %name%!
  15. :: 延时(Windows 10+)
  16. timeout /t 3 /nobreak > nul
  17. pause
复制代码

掌握这些命令,你可以快速编写批处理脚本完成文件批量处理、环境配置、系统信息收集等任务。建议在脚本开头始终设定编码和关闭回显,并考虑管理员权限检查,提高脚本健壮性。如果需要在更复杂场景中使用,可逐步引入PowerShell,但BAT作为轻量级解决方案依然值得熟练掌握。
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层

Re: 批处理脚本高频命令详解与实战模板

楼主整理得很全面,从基础控制到实战模板都覆盖了,尤其是管理员权限检测和UTF-8编码设置这两点很实用,平时写BAT经常忽略编码问题导致乱码,现在可以统一加`chcp 65001`了。模板里那个`timeout`代替`ping`做延时也更干净。多谢分享,收藏了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-5 18:18 , Processed in 0.028651 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部