【汇总】bat批处理常用系统信息、命令、语法、示例、参数截取、扩展变量、系统自带变量、外部命令
Windows 下使用批处理设置东西,是很方便的事。
一、系统自带变量
1.1 变量
| 命令 | 示例 | 备注、说明 |
|---|---|---|
| chcp 936 | chcp 936>nul | Win7、Win10 默认设置命令行字符集(编码) 936是GBK;(cmd 输入 chcp 查看) |
| chcp 65001 | chcp 65001>nul | Win11默认设置命令行字符集(编码)65001是UTF-8 mode con 查看当前字符集 |
| %errorlevel% | 命令执行返回值 | 相当于Linux 的 $? |
| %PATH% | C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem | 系统指定可执行文件的搜索路径。环境变量路径 |
| %PATHEXT% | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH | 系统返回操作系统以为可执行的文件扩大名的列表。示例: |
| %CMDCMDLINE% | cmd /c ""E:\2.bat" "注意: 这条用ls env: 输出时没有 | 本地返回用来启动当前的 Cmd.exe 的正确命令行。bat脚本里使用有效。 |
| %DATE% | 2011-01-12 星期三 | 系统返回当前日期。使用与 date /t 命令雷同的格局。 由 Cmd.exe 生成。有关 date 命令的具体信息,请参阅 Date。 |
| %TIME% | 19:55:12.75 | 系统 返回当前时光。应用与 time /t 命令雷同的格局。 由 Cmd.exe 天生。有关 time 命令的具体信息,请参阅 Time。 |
| %OS% | Windows_NT | 系统返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。 |
| %PROMPT% | $P$G | 本地 返回当前说明程序的命令提醒符设置。由 Cmd.exe 天生。 |
| %RANDOM% | 30848 | 系统返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe生成。 |
1.2 bat脚本里使用才有效的变量
| 命令 | 结果示例 | 备注、说明 |
|---|---|---|
| %PROCESSOR_ARCHITECTURE:~% | x86 | 获取系统硬件型号和位宽,系统返回处理器的芯片系统构造。 |
| %PROCESSOR_IDENTFIER% | 系统 返回处理器说明。 | |
| %PROCESSOR_LEVEL% | 系统 返回计算机上安装的处理器的型号。 | |
| %PROCESSOR_REVISION% | 系统 返回处理器的版本号。 | |
| %CMDEXTVERSION% | 2 | 系统返回当前的"命令处理程序扩大"的版本号。 |
| %CMDCMDLINE% | 系统默认 cmd 路径 | |
| %NUMBER_OF_PROCESSORS% | 4 | 系统指定安装在盘算机上的处理器的数目。 |
| %USERDOMAIN% | HP05281125 | 本地返回包括用户帐户的域的名称。 |
| %COMPUTERNAME% | HP05281125 | 系统返回盘算机的名称。 |
| %USERNAME% | Administrator | 本地返回当前登录的用户的名称 |
| %COMSPEC% | C:\WINDOWS\system32\cmd.exe | 体系返回命令行说明器可履行程序的正确路径。 |
变量名可以改成小写
1.3 变量路径
| 命令 | 结果示例 | 备注、说明 |
|---|---|---|
| %SYSTEMDRIVE% | C: | 系统返回包括 Windows server operating system根目录(即系统根目录)的驱动器。 |
| %HOMEDRIVE% | C: | 系统返回衔接到用户主目录的本地工作站驱动器号。 基于主目录值而设置。用户主目录是在"本地用户和组"中指定的。 |
| %HOMEPATH% | WinXP: \Documents and Settings\Administrator Win11: \Users\%username% |
体系返回用户主目录的完全路径。基于主目录值而设置。 用户主目录是在"本地用户和组"中指定的。 |
| %SYSTEMROOT% | C:\WINDOWS | 系统返回 Windows server operating system 根目录的位置。 |
| %WINDIR% | C:\WINDOWS | 操作系统目录 |
| %LOCALAPPDATA% | Win11: C:\Users\%USERNAME%\AppData\Local | |
| %APPDATA% | WinXP:C:\Documents and Settings\Administrator\Application Data Win7:C:\Users\%username%\AppData\Roaming) |
本地返回默认情形下利用程序存储数据的地位。 |
| %USERPROFILE% | WinXP: C:\Documents and Settings\Administrator Win7: C:\Users\Administrator |
当前用户的HOME目录。(win7开始,路径在C:\Users\下) |
| %TEMP% | WinXP: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp Win7: C:\Users\Administrator\AppData\Local\Temp |
系统和用户返回对当前登录用户可用的运用程序所应用的默认临时目录。 有些利用程序须要 TEMP,而其他利用程序则需要TMP。 |
| %TMP% | 同上 | |
| %ALLUSERSPROFILE% | C:\ProgramData | 本地 返回“所有用户”配置文件的位置。 |
| %ProgramFiles% | C:\Program Files | |
变量名可以改成小写
1.4 网络变量
| 命令 | 示例 | 备注、说明 |
|---|---|---|
| %HOMESHARE% | 系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 | |
| %LOGONSERVER% | \\HP05281125 | 本地返回验证当前登录会话的域把持器的名称。 |
变量名可以改成小写
二、扩展变量(bat脚本外部向内部传递参数值)
2.1 普通参数
调用扩充变量最多为10个,由于%0表示bat文件本身,因此外部参数其实是%1至%9。
| 命令 | 说明 | 备注 |
|---|---|---|
| %0 | 代表bat本身文件名 | |
| %1 | 代表第一个参数 | |
| %2 | 代表第二个参数 | |
| …… | 略 | |
| %9 | 代表第九个参数 | |
| %* | 从第一个参数开始的所有参数 |
2.2 扩展~参数
| 命令 | 说明 | 备注 |
|---|---|---|
| %~0 | 等同 %0 | |
| %~1 | 删除引号("),扩充 %1 | 获取拖拽文件路径 |
2.3 扩展~f参数
| 命令 | 说明 | 备注 |
|---|---|---|
| %~f0 | 获取脚本的完整路径 | 扩充 %0 |
| %~f1 | 获取,参数1 文件完整路径 | 扩充 %1 |
三、逻辑命令
| 命令 | 说明 | 备注 |
|---|---|---|
| > | 内容清空后写入 | |
| >> | 内容追加写入到已有文本后 | |
| <、>&、<& | 重定向符 | |
| >nul | 将结果抛弃 | |
| @ | 命令行回显屏蔽符 | |
| % | 批处理变量引导符 | |
| ^ | 转义字符 | |
| "" | 字符串界定符 | |
| & | 组合命令 | |
| && | 组合命令 | |
| || | 组合命令 | |
| 命令1 & 命令2 & 命令3 … | 无论前面命令是否执行成功,照样执行后面 | 相当于Linux 的 “;” |
| 命令1 && 命令2 &&命令3… | 仅当,前面命令成功时,才执行后面 | |
| 命令1 || 命令2 || 命令3… | 仅当,前面命令1失败时.才执行后面命令2 | |
四、字符串,替换、截取
字符串截取需要知道截取的起始位置和截取的字符串数目长度
表示方法为:str:~m,n 其中:str表示要截取的字符串,m表示截取的起始位置,n表示截取的字符串长度,常有如下几种处理方式:
| 命令 | 说明 | 备注 |
|---|---|---|
| %val:world=man% | 将val值中的所有world替换成man | |
| %a:~0,n% | 表示从字符串a取左边n位 | |
| %a:~-m% | 表示从字符串a取右边m位 | |
| %a:~m,n% | 表示从字符串a从m+1位开始取n位 | |
| %a:~m,-n% | 表示从字符串a,由m+1位开始,至倒数n+1位 | |
| %a:~m % | 表示从字符串a 由m+1位开始取右边全部。 |
五、获取文件信息
5.1 获取执行文件当前路径
| 命令 | 说明 | 备注 |
|---|---|---|
| %~f0 | 当前文件所在路径 |
@echo off
chcp 65001>nul
echo.
echo 运行文件: %~f0
echo.
pause

5.2 截取参数路径
注意:下面的1是传入的第一个变量,比如有个mm被定义为某一个文件的路径,
那么可以使用%~tmm去获取文件的修改时间
| 序号 | 命令 | 说明 | 备注 |
|---|---|---|---|
| 1 | %~d1 | C: | 获得驱动器号 |
| 2 | %~p1 | \Users\admin\Desktop\ | 不带驱动器号的路径 |
| 3 | %~n1 | flag | 仅文件名,不含后缀 |
| 4 | %~x1 | .txt | 文件后缀 |
| 5 | %~s1 | C:\Users\admin\Desktop\flag.txt | 路径指含有短名(完全路径) |
| 6 | %~a1 | --a----- | 文件属性(文件的安全属性) |
| 7 | %~t1 | 2022/04/05 19:34 | 文件的日期/时间(文件的修改时间) |
| 8 | %~z1 | 37 | 文件的大小(文件的字节大小) |
| 9 | %~$PATH:1 | C:\Users\admin\Desktop\flag.txt | 查找列在 PATH 环境变量的目录,并将 %1 |
| 10 | %1 | 同上 |

5.3 获取脚本自身信息
| 命令 | 说明 | 备注 |
|---|---|---|
| %cd% | 当前路径 | 当前路径,表示执行命令时所在的目录 |
| %~dp0 | 批处理文件所在的目录 | “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径目录。cd %~dp0bin\ :进入批处理所在目录的bin目录 |

5.4 获取CPU信息
echo %PROCESSOR_ARCHITECTURE:~%

系统CPU是AMD牌子,64位的
5.5 获取CPU品牌
echo %PROCESSOR_ARCHITECTURE:~0,3%

5.6 获取CPU位数
echo %PROCESSOR_ARCHITECTURE:~3%
或
echo %PROCESSOR_ARCHITECTURE:~-2%

5.7 获取系统版本信息
ver

六、内置命令
| 命令 | 说明 | 备注 |
|---|---|---|
| assoc | 显示文件类型 | assoc .txt |
| ftype | 显示所有文件类型关联 | |
| set | 获取系统变量 | 相当于Linux 的 env |
| setx | 设置环境变量 | 用户环境变量: setx "变量名" "变量值" 全局变量:setx "变量名" "变量值" /m |
| ver | 获取系统版本 | |
| find | 文件中寻找字符串 | |
| findstr | 文件中寻找字符串 | |
| start | 调用其他可执行程序 | |
| call | 标识符可以用于调用函数,也可以调用别的bat脚本 | |
| type | 显示文本文件的内容 | |
| clip | 修改剪切板 | echo aa |
| mklink | 创建lnk 软链接/硬链接/符号链接 | |
| mode | 配置系统设备 | |
| pushd | 路径加入堆栈。用在目录快速切换,类似Linux的 cd -。配合popd使用。例:pushd d:\aaa | |
| popd | 获取堆栈路径,并进入 | |
| taskkill | 结束进程 | |
| exit | 退出 | 使用/b参数,设置退值 |
| hostname | 显示主机名 | |
七、外部命令汇总
| 命令 | 说明 | 备注 |
|---|---|---|
| calc | 启动计算器 | |
| certmgr.msc | 证书管理实用程序 | |
| charmap | 启动字符映射表 | |
| chkdsk.exe | Chkdsk磁盘检查 | |
| ciadv.msc | 索引服务程序 | |
| cleanmgr | 垃圾整理 | |
| cliconfg | SQL SERVER 客户端网络实用程序 | |
| Clipbrd | 剪贴板查看器 | |
| cmd.exe | CMD命令提示符 | |
| compmgmt.msc | 计算机管理 | |
| conf | 启动netmeeting | |
| dcomcnfg | 打开系统组件服务 | |
| ddeshare | 打开DDE共享设置 | |
| devmgmt.msc | 设备管理器 | |
| dfrg.msc | 磁盘碎片整理程序 | |
| diskmgmt.msc | 磁盘管理实用程序 | |
| drwtsn32 | 系统医生 | |
| dvdplay | DVD播放器 | |
| dxdiag | 检查DirectX信息 | |
| eudcedit | 造字程序 | |
| eventvwr | 事件查看器 | |
| explorer | 打开资源管理器 | |
| fsmgmt.msc | 共享文件夹管理器 | |
| gpedit.msc | 组策略 | |
| iexpress | 木马捆绑工具,系统自带 | |
| logoff | -注销命令 | |
| lusrmgr.msc | 本机用户和组 | |
| magnify | 放大镜实用程序 | |
| mem.exe | 显示内存使用情况 | |
| mmc | 打开控制台 | |
| mobsync | 同步命令 | |
| mplayer2 | 简易widnows media player | |
| Msconfig.exe | 系统配置实用程序 | |
| mspaint | 画图板 | |
| mstsc | 远程桌面连接 | |
| narrator | 屏幕“讲述人” | |
| net start messenger | 开始信使服务 | |
| net stop messenger | 停止信使服务 | |
| netstat -an | (TC)命令检查接口 | |
| notepad | 打开记事本 | |
| Nslookup | IP地址侦测器 | |
| ntbackup | 系统备份和还原 | |
| ntmsmgr.msc | 移动存储管理器 | |
| ntmsoprq.msc | 移动存储管理员操作请求 | |
| odbcad32 | ODBC数据源管理器 | |
| oobe/msoobe /a | 检查XP是否激活 | |
| osk | -打开屏幕键盘 | |
| packager | 对象包装程序 | |
| perfmon.msc | 计算机性能监测程序 | |
| progman | 程序管理器 | |
| regedit.exe | 注册表 | |
| regedt32 | 注册表编辑器 | |
| regsvr32 /u *.dll | 停止dll文件运行 | |
| regsvr32 /u zipfldr.dll | 取消ZIP支持 | |
| rononce -p | 15秒关机 | |
| rsop.msc | 组策略结果集 | |
| secpol.msc | 本地安全策略 | |
| services.msc | 本地服务设置 | |
| sfc /scannow | windows文件保护 | |
| sfc.exe | 系统文件检查器 | |
| shrpubw | 创建共享文件夹 | |
| sigverif | 文件签名验证程序 | |
| sndrec32 | 录音机 | |
| Sndvol32 | 音量控制程序 | |
| syncapp | 创建一个公文包 | |
| sysedit | 系统配置编辑器 | |
| syskey | 系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 (慎用) | |
| taskmgr | 任务管理器 | |
| tourstart | xp简介(安装完成后出现的漫游xp程序) | |
| tsshutdn | 60秒倒计时关机命令 | |
| utilman | 辅助工具管理器 | |
| wiaacmgr | 扫描仪和照相机向导 | |
| winchat | XP自带局域网聊天 | |
| winmsd | 系统信息 | |
| winver | 检查Windows版本 | |
| wmimgmt.msc | 打开windows管理体系结构(WMI) | |
| write | 写字板 | |
| wscript | windows脚本宿主设置 | |
| wupdmgr | windows更新程序 |
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1261263
https://www.xiaomawang.cn/help/72135.html
http://www.manongjc.com/detail/27-rkzommdllnwwooe.html
https://www.cnblogs.com/Pasple/p/15709914.html
http://681314.com/A/o8RGmQ7BuZ
https://www.bilibili.com/read/cv25554439/
https://blog.csdn.net/weixin_51575203/article/details/130188687 变量多种使用方法详细解释
https://www.cnblogs.com/hjbf/p/13576852.html 系统自带变量的详细说明
https://www.cnblogs.com/zhongchangliang/articles/16575313.html
https://www.cnblogs.com/baiqiantao/p/9391707.html 《批处理 特殊符号 总结》
https://blog.csdn.net/baidu_41553551/article/details/123974284 外部命令汇总
https://blog.csdn.net/high_sky_fly/article/details/129632550 单行、行尾、多行注释
https://blog.csdn.net/CSDN_wangmj/article/details/104151131 ^ 转义字符
https://www.jianshu.com/p/5599830a8051 自动输入Y, 删除非空文件夹
https://blog.csdn.net/B11050729/article/details/131655470
https://blog.csdn.net/rubikchen/article/details/127035360 (exit /b)
https://blog.csdn.net/hfy1237/article/details/130123285 (assoc ftype)
https://blog.csdn.net/yanhanhui1/article/details/108871132 (setx)
https://blog.csdn.net/Y525698136/article/details/145174273 (setx)
https://www.cnblogs.com/zhaoqingqing/p/4620402.html (Windows 批处理(bat)语法大全)
https://baike.baidu.com/item/bat/365230 (百度百科-语法大全)
https://blog.csdn.net/weixin_45036709/article/details/129660495 (ComSpec等变量、路径说明)
https://blog.csdn.net/weixin_65032328/article/details/136580118 (变量覆盖说明)
https://mp.weixin.qq.com/s/v0LwIkSYffuGjxREsYuwJg (hostname)
https://www.wenxiaobai.com/ (%LOCALAPPDATA%)
浙公网安备 33010602011771号