菜鸟科技网

批处理命令实例有哪些常见用法?

第一部分:基础入门实例

这些实例涵盖了最核心、最常用的命令,适合初学者快速上手。

批处理命令实例有哪些常见用法?-图1
(图片来源网络,侵删)

实例 1:你好,世界!

这是所有编程语言的第一个例子,在批处理中非常简单。

代码 (hello.bat)

@echo off
echo 你好,世界!
pause

代码解释

  • @echo off: 关闭命令回显,这样运行脚本时,就不会先显示 echo 你好,世界! 这一行本身,只会显示结果。
  • echo 你好,世界!: 在控制台打印 "你好,世界!" 这段文字。
  • pause: 暂停脚本的执行,并显示 "请按任意键继续. . .",这很有用,可以让你看清输出结果,然后窗口不会一闪而过。

实例 2:变量赋值与使用

批处理可以处理变量,实现简单的数据存储。

批处理命令实例有哪些常见用法?-图2
(图片来源网络,侵删)

代码 (variable_demo.bat)

@echo off
:: 定义一个变量名为 NAME,并赋值为 "张三"
set NAME=张三
echo 你好, %NAME%!
:: 定义一个数字变量
set NUM=100
echo 计算结果是: %NUM%
pause

代码解释

  • set NAME=张三: 定义一个名为 NAME 的变量,并赋值为 "张三"。注意: 等号 两边不能有空格。
  • %NAME%: 使用变量时,需要在变量名前后加上百分号 。
  • rem: 这两个都是注释符号,后面的内容不会被脚本执行。 更常用,因为它不会在 echo on 时显示出来。

实例 3:用户输入

通过 set /p 命令,可以与用户进行交互,获取输入内容。

代码 (user_input.bat)

批处理命令实例有哪些常见用法?-图3
(图片来源网络,侵删)
@echo off
set /p PNAME=请输入你的名字:
echo 你好, %PNAME%! 欢迎使用批处理脚本。
pause

代码解释

  • set /p PNAME=请输入你的名字:: 这行会显示 请输入你的名字: 并等待用户输入,用户输入的内容将被赋值给变量 PNAME
  • /p 参数专门用于提示用户输入。

实例 4:基本算术运算

批处理支持简单的整数算术运算。

代码 (math.bat)

@echo off
set /a a=10
set /b b=20
set /c c=%a% + %b%
echo a + b = %c%
set /d d=%a% * 2
echo a * 2 = %d%
pause

注意: 现代批处理中,set /a 是进行算术运算的标准方式,上面的 /b/d 是为了展示,但 set /a 是最通用的。 更正的通用写法:

@echo off
set /a a=10
set /a b=20
set /c_result=%a% + %b%
echo a + b = %c_result%
set /a d=%a% * 2
echo a * 2 = %d%
pause

代码解释

  • set /a: /a 参数告诉 set 命令后面的字符串是一个要计算的算术表达式。
  • , , , , (取模) 等运算符都支持。
  • 在表达式中使用变量时,可以省略百分号,如 set /a sum=a+b

实例 5:if 条件判断

if 命令是脚本逻辑的核心,用于根据条件执行不同的代码。

代码 (if_demo.bat)

@echo off
set /p age=请输入你的年龄:
if %age% LSS 18 (
    echo 你是未成年人。
) else if %age% LSS 60 (
    echo 你是成年人。
) else (
    echo 你是老年人。
)
pause

代码解释

  • if ... (...) else (...): 这是 if 的基本结构,如果条件为真,则执行 里的代码。
  • %age% LSS 18: 这是一个条件判断。
    • LSS: 小于 (Less)
    • LEQ: 小于或等于 (Less or EQuaL)
    • EQU: 等于 (EQuaL)
    • NEQ: 不等于 (Not EQuaL)
    • GTR: 大于 (GreaTer)
    • GEQ: 大于或等于 (Greater or EQuaL)
  • else if 在批处理中没有直接的关键字,需要用嵌套的 if 实现,如上例所示。

实例 6:for 循环

for 循环用于重复执行一段代码。

代码 (for_demo.bat)

@echo off
echo 遍历一个简单的列表:
for %%i in (苹果 香蕉 橙子) do (
    echo 水果是: %%i
)
echo.
echo 从 1 数到 5:
for /l %%j in (1,1,5) do (
    echo 数字是: %%j
)
pause

代码解释

  • for %%i in (...) do (...): 这是 for 循环的基本结构。
    • %%i: 循环变量,在批处理文件中必须使用两个百分号 ,如果在命令行直接运行,则只用一个 。
    • in (...): 括号里是要遍历的列表。
    • do (...): 对列表中的每一项执行的操作。
  • for /l: /l 参数用于创建一个数值循环。
    • in (起始值, 步长, 结束值): 上面例子中,从 1 开始,每次加 1,到 5 结束。


第二部分:进阶实用实例

这些实例结合了多个命令,解决实际工作中的问题。

实例 7:一键清理系统临时文件

这是一个非常实用的脚本,可以帮你清理系统垃圾文件。

代码 (clean_temp.bat)

@echo off
echo 正在清理系统临时文件...
echo.
:: 清理用户临时文件夹
echo 清理用户临时文件夹...
rd /s /q "%temp%"
md "%temp%"
:: 清理系统临时文件夹 (需要管理员权限)
echo 清理系统临时文件夹...
rd /s /q "C:\Windows\Temp"
md "C:\Windows\Temp"
echo.
echo 清理完成!
pause

代码解释

  • rd /s /q "文件夹路径":
    • rd (RMDIR): 删除目录。
    • /s: 递归删除,删除指定目录及其下的所有文件和子目录。
    • /q: 安静模式,不询问是否确认。
  • md "文件夹路径": 创建目录,删除后立即创建,可以防止某些程序因找不到目录而出错。
  • %temp%: 这是一个系统变量,指向当前用户的临时文件夹路径。

实例 8:批量重命名文件

这个脚本可以将一个文件夹里所有的 .txt 文件重命名为 .doc 文件。

代码 (rename_files.bat)

@echo off
set "source_dir=C:\path\to\your\files"  <--- !!! 请务必修改为你的文件夹路径 !!!
:: 检查目录是否存在
if not exist "%source_dir%" (
    echo 错误:目录 "%source_dir%" 不存在!
    pause
    exit /b
)
echo 准备在 "%source_dir%" 目录下重命名 .txt 文件为 .doc 文件...
echo.
cd /d "%source_dir%"
for %%f in (*.txt) do (
    echo 正在重命名 "%%f" -> "%%~nf.doc"
    ren "%%f" "%%~nf.doc"
)
echo.
echo 重命名完成!
pause

代码解释

  • set "source_dir=...": 设置要操作的文件夹路径。请务必修改为你自己的路径。
  • if not exist ...: 检查目录是否存在,如果不存在则报错并退出。
  • cd /d "%source_dir%": 切换到目标目录。/d 参数允许同时切换驱动器和目录。
  • for %%f in (*.txt) do (...): 遍历当前目录下所有以 .txt 结尾的文件。
  • %%f: 代表完整的文件名,report.txt
  • %%~nf: 这是一个文件名修饰符。%%~nf 表示文件名(不带扩展名),report
  • ren "%%f" "%%~nf.doc": ren (RENAME) 命令,将 %%f 重命名为 %%~nf.doc

实例 9:检查文件是否存在并执行操作

这是一个常见的逻辑判断,用于检查关键文件是否存在。

代码 (check_file.bat)

@echo off
set "config_file=C:\Program Files\MyApp\config.ini"
if exist "%config_file%" (
    echo 找到配置文件: %config_file%
    echo 正在启动应用程序...
    :: 在这里启动你的程序,
    :: start "" "%ProgramFiles%\MyApp\myapp.exe"
) else (
    echo 错误:找不到配置文件 %config_file%
    echo 请检查文件路径是否正确。
)
pause

代码解释

  • if exist "文件路径": 检查指定的文件或目录是否存在。
  • start "" "程序路径": start 命令用于启动一个程序,第一个引号 是给窗口标题预留的,可以为空,第二个引号 "程序路径" 是要执行的程序的完整路径。

实例 10:带菜单的选择界面

创建一个交互式的菜单,让用户选择要执行的操作。

代码 (menu_demo.bat)

@echo off
:MENU
cls
echo.
echo ============ 系统维护工具 ============
echo.
echo 1. 清理临时文件
echo 2. 查看IP地址
echo 3. 退出
echo.
echo =====================================
echo.
set /p choice=请输入你的选择 (1/2/3):
if "%choice%"=="1" goto CLEAN_TEMP
if "%choice%"=="2" goto SHOW_IP
if "%choice%"=="3" exit /b
echo 无效的选择,请重新输入。
pause
goto MENU
:CLEAN_TEMP
echo 你选择了 "清理临时文件"
:: 这里可以调用实例7的代码
rd /s /q "%temp%" >nul 2>&1
md "%temp%" >nul 2>&1
echo 临时文件已清理。
pause
goto MENU
:SHOW_IP
echo 你选择了 "查看IP地址"
ipconfig
pause
goto MENU

代码解释

  • MENU: 定义一个名为 MENU 的标签。goto 命令可以跳转到标签所在的位置。
  • cls: 清空屏幕。
  • set /p choice=...: 获取用户的选择并存储在 choice 变量中。
  • if "%choice%"=="1" goto CLEAN_TEMP: 如果用户输入 1,则跳转到 CLEAN_TEMP 标签处执行。
  • >nul 2>&1: 这是一个重定向,将命令的输出(包括错误输出)全部丢弃,使 pause 前的提示更干净。
  • exit /b: 退出当前脚本。/b 表示退出批处理文件,而不是关闭整个命令行窗口。

如何运行批处理文件?

  1. 将上述代码复制到文本编辑器(如记事本)中。
  2. 将文件另存为,文件名后缀必须是 .bathello.bat
  3. 双击运行这个 .bat 文件即可。
  4. 如果需要管理员权限,可以右键点击文件,选择“以管理员身份运行”。

希望这些实例能帮助你理解和使用批处理命令!

分享:
扫描分享到社交APP
上一篇
下一篇