【汇总】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%)