- 变量操作:
查看:
set
定义变量:
set val=abc
提示输入变量:
set /p val=请输入变量:val
替换:
set val=%val:a=b% #把变量%val%中的a替换成b
截取:
set val=%val:~0,3% #截取val的前3位
合并:
set val=%a%%b%
计算:
set /a a=%b%+1 #设置变量a的值为变量b+1
- 调用语句:
a.bat
b.bat
#在a.bat中调用b.bat:
直接调用:
call b.bat
传递参数:
call b.bat %1 %2 ...
call b.bat %*
简写:
@b.bat
查看脚本目录:
echo %~dp0
- 判断语句:
a. 语法:
if 条件 (
逻辑
) else (
逻辑
)
b. 条件:
判断字符串是否相等:
"字符串1"=="字符串2"
判断数值是否相等:
数值1 equ 数值2
判断文件/文件夹是否存在:
exist 文件名
判断变量是否已定义:
defined 变量
判断上个语句的返回值:
%errorlevel% #为0执行成功,否则执行失败
c. 表达式:
中文含义 关系符 英文解释
等于 equ equal
大于 gtr greater than
大于或等于 geq greater than or equal
小于 lss less than
小于或等于 leq less than or equal
不等于 neq no equal
- 循环语句:
a. 语法:
for %%a in (%b%) do (
逻辑
)
b. 用法:
遍历当前目录下的所有文件:
for %%i in (*) do (
echo %%i
)
遍历脚本中的所有参数:
for %%i in (%*%) do (
echo %%i
)
输出文本中以,分隔的第二段内容:
for /f "delims=, tokens=2" %%i in (test.txt) do (
echo %%i
)
遍历当前目录下的所有文件夹:
for /d %%i in (*) do (
echo %%i
)
递归遍历当前目录下的所有文件(包含子目录):
for /r %%i in (*) do (
echo %%i
)
建立序列:
for /l %%i in (1,2,5) do (
echo %%i
)
输出:
1
3
5
- 字符集操作:
查看:
chcp
切换:
chcp 936 #简体中文
chcp 65001 #utf-8
- 清屏:
cls
- 显示/修改时间、日期:
日期:
date
时间:
time
只显示:
date /t
- 宏操作(别名):
创建:
doskey lee=cd e:\test $t dir #$t是分隔符
使用:
lee
查看历史记录:
doskey /history
设置历史记录保存条数:
doskey /histsize=1
- 退出脚本:
exit /b 状态码
- 查看帮助文档:
dir /?
help dir
- 跳转语句:
创建标签:
:label
跳转到标签:
goto label
死循环:
:test
echo test
goto test
- 注销:
logoff #linux下是logout
- 暂停程序的执行:
pause
- 打印操作:
显示打印列表:
print
删除指定文件:
print /c test.txt
追加打印文件:
print /p test.txt
清空:
print /t
- 修改dos窗口的提示符:
prompt $p$g
- 排序:
正序:
sort test.txt
反序:
sort /r test.txt
输入排序:
sort #结束按ctl+z+回车
- 显示dos版本号:
ver
- 显示磁盘卷标和序列号:
vol
- 扫描磁盘:
立即扫描:
sfc /scannow
开机自动扫描:
sfc /scanboot