目录
-
@ echo off
:关闭命令的回显功能,这样在执行脚本时不会显示每条命令的具体执行过程。建议将此行放在批处理脚本的首行。 -
rem
:用于添加注释,后面可以跟上注释内容。注释的作用是对脚本进行说明或提醒,不会被执行。 -
pause
:暂停批处理的运行,直到用户按下任意键才会继续执行后面的命令。 -
title
:为批处理脚本设置窗口标题,后面可以跟上要设置的标题内容。 -
echo.
:输出一个空行,可以在执行批处理脚本时在输出结果中插入空行。 -
set
:用于设置变量,可以将一个值或字符串赋给一个变量。在脚本中可以使用%变量名%
的形式来获取变量的值。 -
:
和goto
:冒号用来定义标签,标签名后面可以跟上冒号及一个唯一的标识符。goto
命令用于实现跳转,后面跟上要跳转到的标签名,从而实现控制脚本的流程。
一、@echo off
作用:
- 关闭命令提示符窗口上的命令回显功能。
格式:
@echo off
使用示例:
@echo off
echo Hello World!
::如果不加pause命令执行完就直接退出了看不到执行过程
pause
在执行脚本时,屏幕上将不会显示命令执行的具体过程,只会输出Hello World!
这个字符串。
二、rem
作用:
- 在批处理文件中添加注释。
格式:
rem 注释内容
或:: 注释内容
使用示例:
@echo off
rem 这是一行注释,用于说明下面这行命令的作用。 echo Hello World!
或
@echo off
:: 这是一行注释,用于说明下面这行命令的作用。 echo Hello World!
在执行脚本时,由于注释只用于说明,因此不会对程序的执行产生任何影响。
三、pause
作用:
- 使批处理文件在执行到该命令时暂停,直到用户按下任意键后继续执行。
格式:
pause
使用示例:
@echo off
echo Hello World!
pause
echo Bye-bye World!
pause
在执行到pause
命令时,程序将暂停执行,直到用户按下任意键才会继续执行下面的命令。在用户按下任意键之前,屏幕上将显示当前的执行结果,即Hello World!
这个字符串。
四、title
作用:
- 设置批处理文件运行时窗口的标题。
格式:
title 窗口标题
使用示例:
@echo off
title My Batch Script
echo Hello World!
pause
在执行脚本时,程序窗口的标题将被设置为My Batch Script
。在执行完成后,可以看到程序窗口左上角的标题已经变成了My Batch Script
。
五、echo.
作用:
- 输出一个空行。
格式:
echo.
使用示例:
@echo off
echo Hello World!
echo.
echo Bye-bye World!
pause
在执行脚本时,每次执行到echo.
这一行时,都会输出一个空行。这样就可以在输出结果中插入空格,使得输出结果更加清晰易懂。
六、set
作用:
- 定义和设置一个环境变量。
格式:
set 变量名=变量值
使用示例:
@echo off
set myVar=Hello World!
echo %myVar%
pause
在执行脚本时,将Hello World!
赋给了一个名为myVar
的变量。在后面的echo %myVar%
命令中,可以使用%myVar%
来获取该变量的值并输出。因此,在执行完成后,屏幕上将输出Hello World!
这个字符串。
七、:
和 goto
作用:
- 用于在批处理文件中进行标签和跳转。
格式:
:标签名
命令
goto 标签名
使用示例:
@echo off
:begin
echo Hello World!
goto end
:end
echo Bye-bye World!
pause
在执行脚本时,程序将首先执行标签为begin
的那行代码,即输出Hello World!
这个字符串。然后由于跳转到标签为end
的那行代码,因此不会再执行后面的echo Bye-bye World!
命令。
以下是几个实用的批处理案例
1、文件备份
@echo off
REM 设置源目录和目标目录
set source_dir=C:\Users\Administrator\Desktop\1
set dest_dir=C:\Users\Administrator\Desktop\2
REM 使用 robocopy 命令进行文件备份 /e 参数表示复制所有子目录(包括空目录)
robocopy "%source_dir%" "%dest_dir%" /e
REM 输出备份结果
echo 备份完成!
pause
2、自动清理临时文件
@echo off
REM 设置待清理的目录和文件最大存活时间
set target_dir=C:\Users\binjie09\AppData\Local\Temp
set max_age=7
REM 使用 forfiles 命令查找并删除过期文件
forfiles /p "%target_dir%" /s /m *.* /d -%max_age% /c "cmd /c del @path"
pause
3、自动备份MySQL数据库
@echo off
REM 设置 mysqldump.exe 的路径、备份目录以及数据库相关信息
set mysqldump_file="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"
set backup_dir=C:\Users\binjie09\Desktop\mysql_backup
set db_name=mydatabase
set db_user=root
set db_password=mypassword
REM 根据日期生成备份文件名
set filename=%db_name%_%date:~0,4%%date:~5,2%%date:~8,2%.sql
REM 使用 mysqldump 命令备份数据库并保存到指定目录
%mysqldump_file% -u %db_user% -p%db_password% %db_name% > "%backup_dir%\%filename%"
4、用户管理
@echo off
:menu
echo 用户管理系统
echo.
echo 1. 添加用户
echo 2. 删除用户
echo 3. 列出所有用户
echo 4. 退出
echo.
set /p choice=请输入选项:
if "%choice%"=="1" goto add_user
if "%choice%"=="2" goto delete_user
if "%choice%"=="3" goto list_users
if "%choice%"=="4" goto exit
echo 无效的选项,请重新输入。
echo.
goto menu
:add_user
echo.
set /p username=请输入用户名:
net user %username% /add
echo 用户 %username% 添加成功!
echo.
goto menu
:delete_user
echo.
set /p username=请输入要删除的用户名:
net user %username% /delete
echo 用户 %username% 删除成功!
echo.
goto menu
:list_users
echo.
echo 所有用户:
net user
echo.
goto menu
:exit
exit