Windows 批处理(.bat)命令表
好的,我将这些命令也加入到表格中,并提供详细的说明。
命令 | 参数 | 说明 | 示例 | 返回结果 |
---|---|---|---|---|
ECHO | [message] | 显示消息或开关命令回显 | ECHO Hello, World! | 打印 Hello, World! |
REM | [comment] | 添加注释 | REM This is a comment | 不返回结果,仅作注释 |
SET | [variable]=[value] | 设置或显示环境变量 | SET myvar=123 | 设置环境变量 myvar 为 123 |
IF | condition command | 条件语句 | IF %errorlevel% NEQ 0 ECHO Error occurred | 如果 errorlevel 不等于 0,则显示 Error occurred |
FOR | %%variable IN (set) DO command | 循环语句 | FOR %%i IN (*.txt) DO ECHO %%i | 对每个 .txt 文件执行 ECHO 命令 |
GOTO | :label | 跳转到指定标签 | GOTO :LABEL | 跳转到 :LABEL 标签 |
CALL | script | 调用另一个批处理文件 | CALL other.bat | 执行 other.bat 文件 |
PAUSE | 无 | 暂停批处理文件的执行 | PAUSE | 显示 Press any key to continue . . . 并暂停执行 |
CLS | 无 | 清除屏幕 | CLS | 清空命令提示符窗口 |
CD | [directory] | 更改当前目录 | CD C:\Users | 更改当前目录为 C:\Users |
DIR | [/A] [/B] | 列出目录内容 | DIR /B | 列出当前目录下的文件和文件夹 |
COPY | source destination | 复制文件 | COPY file1.txt file2.txt | 复制 file1.txt 为 file2.txt |
MOVE | source destination | 移动文件 | MOVE file.txt C:\Temp | 移动 file.txt 到 C:\Temp |
DEL | [file] | 删除文件 | DEL file.txt | 删除 file.txt |
MD | [directory] | 创建目录 | MD NewFolder | 创建名为 NewFolder 的目录 |
RD | /S /Q [directory] | 删除目录 | RD /S /Q OldFolder | 删除 OldFolder 目录及其内容 |
TYPE | [file] | 显示文件内容 | TYPE file.txt | 显示 file.txt 内容 |
FIND | “string” [file] | 在文件中搜索字符串 | FIND "error" log.txt | 在 log.txt 中查找 error 字符串 |
FINDSTR | /I /C:“string” [file] | 在文件中搜索字符串(支持正则表达式) | FINDSTR /I /C:"error" *.log | 在所有 .log 文件中查找 error 字符串(不区分大小写) |
START | [program] | 启动单独的窗口运行程序或命令 | START notepad.exe | 启动 notepad.exe |
TITLE | [title] | 设置命令提示符窗口标题 | TITLE My Batch File | 设置窗口标题为 My Batch File |
EXIT | [/B] [exitCode] | 退出批处理程序 | EXIT /B 1 | 退出并返回退出码 1 |
CHOICE | /C choices /M “message” | 允许用户从一组选项中进行选择 | CHOICE /C YN /M "Continue?" | 提示用户选择 Y 或 N |
TIMEOUT | /T [seconds] [/NOBREAK] | 等待指定的秒数或按键 | TIMEOUT /T 5 /NOBREAK | 等待 5 秒(忽略按键) |
SETLOCAL | [option] | 开始本地化环境变更 | SETLOCAL EnableDelayedExpansion | 启用延迟扩展 |
ENDLOCAL | 无 | 结束本地化环境变更 | ENDLOCAL | 结束本地化环境变更 |
SHIFT | 无 | 更改批处理参数的位置 | SHIFT | 改变参数位置 |
ATTRIB | [+R | -R] [file] | 显示或更改文件属性 | ATTRIB +R file.txt |
VER | 无 | 显示 Windows 版本 | VER | 显示当前 Windows 版本 |
VOL | [drive] | 显示磁盘卷标 | VOL C: | 显示 C: 盘的卷标 |
DATE | /T | 显示或设置日期 | DATE /T | 显示当前日期 |
TIME | /T | 显示或设置时间 | TIME /T | 显示当前时间 |
TASKLIST | 无 | 显示当前运行的进程 | TASKLIST | 列出当前运行的所有进程 |
TASKKILL | /IM [process] /F | 终止进程 | TASKKILL /IM notepad.exe /F | 强制终止 notepad.exe 进程 |
SC | command [service] | 管理 Windows 服务 | SC query | 查询所有服务状态 |
NET | command | 管理网络资源 | NET USER | 列出所有用户 |
IPCONFIG | /ALL | 显示 IP 配置信息 | IPCONFIG /ALL | 显示所有网络适配器的详细信息 |
PING | IP地址或主机名 [-t] [-a] [-n count] [-l size] | 测试网络连接,发送和接收数据包的状况 | PING 192.168.0.1 -t | 不停地测试 192.168.0.1 的连接,按 Ctrl+C 停止 |
TELNET | IP地址或主机名 端口 | 使用 TCP 协议测试端口 | TELNET 192.168.0.1 80 | 测试 192.168.0.1 的 80 端口 |
COLOR | bf | 设置背景及字体颜色 | COLOR 0A | 设置背景色为黑色,字体颜色为淡绿 |
RANDOM | 无 | 产生随机数 | SET /A num=%RANDOM% | 生成一个 0 到 32767 之间的随机数 |
EXIT | 无 | 结束程序 | EXIT | 结束当前的命令提示符会话 |
SHUTDOWN | -s | 关机 | SHUTDOWN -s | 关闭计算机 |
SCHTASKS | /Create /TN [name] /TR [task] | 管理计划任务 | SCHTASKS /Create /TN "MyTask" /TR "C:\task.exe" | 创建一个名为 MyTask 的计划任务 |
特殊变量
变量名 | 描述 |
---|---|
%HOMEDRIVE% | 包含启动系统的驱动器号(通常是C:) |
%HOMEPATH% | 当前用户的主目录路径 |
%USERPROFILE% | 当前用户的配置文件目录路径 |
%WINDIR% | Windows系统目录的位置 |
%SYSTEMROOT% | Windows系统根目录的位置 |
%TEMP% 或 %TMP% | 临时文件夹的路径 |
%APPDATA% | 当前用户的应用程序数据文件夹的路径 |
%PROGRAMFILES% | Program Files文件夹的路径(通常是C:\Program Files) |
%PROGRAMFILES(X86)% | 32位程序的Program Files文件夹路径(在64位系统上) |
%COMPUTERNAME% | 计算机的名称 |
%USERNAME% | 当前登录用户的名称 |
%OS% | 操作系统名称(如Windows_NT) |
%PATH% | 系统搜索可执行文件的目录列表 |
%RANDOM% | 返回0到32767之间的随机数 |
%DATE% | 当前日期,格式因系统区域设置而异 |
%TIME% | 当前时间,格式因系统区域设置而异 |
%CD% | 当前目录的完整路径 |
%ERRORLEVEL% | 最后执行的命令的错误返回码 |
%CMDCMDLINE% | 用于启动当前的cmd.exe的完整命令行 |
%CMDEXTVERSION% | 当前的命令处理器扩展版本号 |
特殊参数变量
| 特殊参数变量: | |
变量名 | 描述 |
---|---|
%0 | 批处理文件的名称 |
%1 到 %9 | 批处理脚本的第1到第9个命令行参数 |
%* | 从第1个开始的所有命令行参数 |
路径扩展变量
| 路径扩展变量(使用 %~dp0 等): | |
变量名 | 描述 |
---|---|
%~dp0 | 批处理文件所在的驱动器和路径 |
%~d0 | 仅批处理文件所在的驱动器 |
%~p0 | 仅批处理文件所在的路径 |
%~n0 | 仅批处理文件的文件名,不包括扩展名 |
%~x0 | 仅批处理文件的扩展名 |
%~f0 | 批处理文件的完整路径名 |
注意:这些路径扩展也可以应用于参数,如 %~dp1 表示第一个参数的驱动器和路径。
-
%~dp0
表示当前批处理文件所在的驱动器和路径。d
代表 Drive(驱动器)p
代表 Path(路径)0
表示批处理文件本身(如果是1
、2
等则表示对应的命令行参数)
-
cd %~dp0
命令会将当前工作目录切换到批处理文件所在的目录。这在需要相对于脚本位置执行操作时非常有用。 -
cd %~dp0bin\
会进入批处理文件所在目录的 bin 子目录。
计划任务的基本概念
-
触发器(Trigger) :
- 定义任务何时开始。例如,可以设置为在特定时间、特定日期、系统启动时、用户登录时,或者在事件发生时触发任务。
-
操作(Action) :
- 定义任务执行的操作。操作可以是启动一个程序、发送一个电子邮件、显示一条消息等。
-
条件(Condition) :
- 设置任务执行的条件。例如,任务仅在计算机处于空闲状态时执行,或者仅当计算机使用电源时执行。
-
设置(Settings) :
- 定义任务的行为。例如,任务失败后是否重试、任务超时后的处理方式等。
使用命令行创建计划任务
字符串处理
注册表操作
环境变量示例
@echo off
REM 设置Java环境变量
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_241" /M
setx PATH "%PATH%;%JAVA_HOME%\bin" /M
REM 设置Python环境变量
setx PYTHON_HOME "C:\Python39" /M
setx PATH "%PATH%;%PYTHON_HOME%" /M
REM 设置Node.js环境变量
setx NODE_HOME "C:\Program Files\nodejs" /M
setx PATH "%PATH%;%NODE_HOME%" /M
REM 刷新环境变量
echo 环境变量已成功设置。请重新启动计算机以应用更改。
pause