DOS批处理笔记
- 1. 获取帮助
- 1.1. help命令。
- 1.2. /?参数。
- 2. 文件和目录
- 3. 变量和运算
- 4. 字符串
- 5. 日期和时间
- 6. 条件分支
- 7. 循环
- 8. 常用方法
- 8.1. 显示bat文件名
- 8.2. 获得bat文件目录
- 8.3. 关闭回显
- 8.4. 执行而不显示命令
- 8.5. 字符转义
- 8.6. 读取ini文件
- 8.7. 备份文件并添加时间戳
- 8.8. 查看程序名和进程ID
- 8.9. 查看监听端口和程序名、进程ID
- 8.10. 查看Git版本号
- 9. 编辑记录
1 获取帮助
Windows系统自带的命令行程序和批处理语句大多带有说明。这些说明介绍了程序和语句的用法,有些还带有示例。查看说明的方法有两个,一是通过help命令,二是使用/?参数。
1.1 help命令。
help命令可以查看语句或程序的说明,比如
help ifhelp tasklist
如果没有参数,help命令打印出批处理支持的语句和程序。
1.2 /?参数。
批处理语句和程序支持/?参数,这个参数让程序显示使用说明,如
if /?findstr /?
2 文件和目录
查看目录。
dir
dir命令的常用参数有
/b
只显示文件名
/s
显示子目录下的文件
/ad
只显示子目录
/ah
只显示隐藏文件
/a-d
只显示文件
/os
从小到大排序
/od
按日期排序
/o-s
从大到小排序
/o-d
按日期逆序排序
删除文件。
del
删除目录。
rmdir
切换工作目录。
cd
复制文件。
copyxcopy
移动文件。
move
3 变量和运算
设置变量。
SET a=1ECHO %a%
SET /A num=10
设置全局变量。
ENDLOCAL & (SET "globalvar1=%localvar1%"
SET "globalvar2=%localvar2%"
)
设置数值变量。
SET /A num1=20SET /A num2=15
预定义变量。
%cd%%date%
%time%
%errorlevel%
%cmdcmdline%
4 字符串
SET x=abcECHO %x%
从位置0开始,长度为2的子字符串。
%str:~0,2%
去除字符串中的空格。
SET s=" a b c"SET "s=%s: =%"
ECHO %s%
输出:abc
%str:~0,2%
表示str从位置0开始,长度为2的子串。
5 日期和时间
查看日期。
date /t
查看时间。
time /t
日期和时间变量。
echo %date%echo %time%
获得年、月、日。
set year=%date:~0,4%echo %year%
set month=%date:~5,2%
echo %month%
set day=%date:~8,2%
echo %day%
set weekday=%date:~11,2%
echo %weekday%
获得小时、分钟、秒钟。
set hour=%time:~0,2%echo %hour%
set minute=%time:~3,2%
echo %minute%
set second=%time:~6,2%
echo %second%
6 条件分支
IFEXIST filename. (del filename.
) ELSE (
echo filename. missing.
)
IF"%str%"=="test" (ECHO OK) ELSE (ECHO NO)
IF %num1% GTR %num2% ECHO %num1%大于%num2%
IF %num1% EQU %num2% ECHO %num1%等于%num2%
IF %num1% LSS %num2% ECHO %num1%小于%num2%
IF [NOT] EXIST filename command
IF [NOT] str1==str2 command
IF [NOT] ERRORLEVEL number command
if [/i] [not] STRING1==STRING2 COMMANDif [/i] STRING1 COMPARE-OP STRING2 COMMAND
开关/i说明比较时不区分大小写。在后一种格式中,COMPARE-OP可以是:
COMPARE-OP
说明
EQU
等于
NEQ
不等于
LSS
小于
LEQ
小于或等于
GTR
大于
GEQ
大于或等于
检查文件是否存在
if [not] existPATH COMMAND
检查变量是否定义
ifdefinedVARIABLE COMMANDsetsuccess=1
ifdefinedsuccessecho"ok"
7 循环
FOR /L %%i IN (1,1,5) DO (SET a=%%i ECHO !a! )FOR /R %%i IN (*.ini) DO (ECHO %%i) REM 查看目录下的.ini文件
8 常用方法
8.1 显示bat文件名
ECHO %cd%%~0
8.2 获得bat文件目录
CD %cd%%~0..
8.3 关闭回显
ECHO OFF
8.4 执行而不显示命令
@ECHO OFF
8.5 字符转义
^|
8.6 读取ini文件
假设有一个config.ini文件,其内容为
username = John
我们可以使用for语句从其中读取配置项:
for /f "delims== tokens=2" %i in ("type config.ini ^| findstr username") do set name=%iecho %
输出:John
如果要在脚本里执行,上面的语句要改为
for /f "delims== tokens=2" %%i in ("type config.ini ^| findstr username") do set name=%%iecho %
8.7 备份文件并添加时间戳
set timestamp=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%copy /v import.txt import.txt_%timestamp%
8.8 查看程序名和进程ID
for /f "skip=2 tokens=1,2" %i in ("tasklist") do (set "program_name=%i"
set "process_id=%j"
echo %program_name% %process_id%
)
8.9 查看监听端口和程序名、进程ID
for /f "tokens=2,5" %i in ("netstat -ano ^| findstr LISTENING") do (set "local_address=%i"
set "process_id=%j"
echo %local_address% %process_id%
)
8.10 查看Git版本号
FOR /F %%i IN ("git rev-parse --short HEAD") DO ( SET commitid=%%i)ECHO commitid=%commitid%
以上是 DOS批处理笔记 的全部内容, 来源链接: utcz.com/z/514506.html