CMD简单用法
命令行
基本说明
- 使用/?或/help可以产看命令用法,例如:
dir /?
基本命令
命令 | 功能 | 举例 |
---|---|---|
echo | 显示 | |
pause | 暂停 | pause > nul ,可以不输出按任意键继续这句话 |
cls | 清屏 | |
exit | 退出 | |
rem | 注释 |
常用命令
命令 | 功能 | 举例 |
---|---|---|
type | 显示文件内容 | type 1.txt |
find | 查找字符串 | find “abc” 2.txt |
fc | 比较文件内容 | fc 1.txt 2.txt |
date | 显示/修改日期 | date /T |
time | 显示/修改时间 | time /T |
ping | 网络连接测试 | |
ipconfig | TCP/IP信息 | |
set /a | 计算表达式 | set /a 6%4 |
shutdown | 关机 | shutdown /s /t 60 |
set
set 变量名=变量值
- 用途:用于创建或修改环境变量,并将值作为字符串存储
- 处理方式:将等号右边的所有内容当作文本处理
eg:
set count=10+20 #将"10+20"作为字符串赋值,不会计算
set /a 变量名=表达式
- 用途:用于计算算术表达式并将结果存储在变量中
- 处理方式:将等式右边的内容作为数学表达式进行求值
多命令
& 顺序执行多条命令,不管命令是否执行成功
&& 顺序执行多条命令,前面的命令错误则不执行后面的命令
|| 顺序执行多条命令,碰到执行正确的命令后将不执行后面的命令
重定向
> 输出重定向
>> 追加重定向
< 输入重定向
管道
| 前一个命令的输出作为后一个命令的输入
dir | find "txt"
文件操作命令
路径分隔符:\
当前命令:.
上一级目录:..
命令 | 功能 | 举例 |
---|---|---|
dir | 显示文件夹内容 | dir /A |
tree | 显示文件夹树形结构 | tree /F |
盘符: | 进入指定磁盘 | c: d: |
cd | 切换目录 | |
mkdir或md | 创建目录 | mkdir test |
rmdir或rd | 删除目录 | rmdir test |
del | 删除文件 | del /f *.txt |
rename或ren | 重命名 | rename a.txt b.txt |
copy | 复制文件 | copy a\1.txt b\1.txt |
move | 移动文件/重命名 | move a\1.txt 2.txt |
批处理
文件名:xx.bat
基本结构
@echo off #关闭回显
echo hello
echo world
pause #可以让窗口不瞬间消失
运行方式
双击
cmd,可以传参
变量
# 设置变量
set 变量名=变量值
set /a 变量名=变量值# 取消变量
set 变量名=# 打印变量
set 变量名# 列出变量
set# 引用变量
%变量名%# 输入变量值
set /p 变量名=提示文字
预定义的变量
变量名 | 值 |
---|---|
%cd% | 当前目录 |
%date% | 当前日期 |
%time% | 当前时间 |
%random% | 0~32767之间的随机数 |
%path% | 环境变量 |
%errorlevel% | 上一个命令的返回值,0表示执行成功 |
%0, %1, %2 … | 参数,%0表示命令本身 |
调用
call 可执行文件、[参数列表]
条件
if [not] 条件 ( # 括号(不能在下一行语句块
) else (语句块
)#eg:
if errorlevel 100 (echo true) else (echo false)# 条件:
errorlevel number # 上一个程序的返回值大于等于number则为true
string1==string2 # 两个字符串匹配则为true
exist filename # 文件名存在则为true
[/I] string1 compare-op string2 # 比较数值或字符串# /I 忽略大小写# compare-op包括:# equ 等于# neq 不等于# lss 小于# leq 小于等于# gtr 大于# geq 大于等于
defined variable # 如果定义了该变量则为true
跳转
goto label # 跳转到标签所在行
:label
循环
基本语法
for %%i in (set) do (语句块
)
# 循环变量用%% 指定,只能是单字母
# set表示文件集合(也可以是空文件),元素之间以逗号或空格分割,支持通配符for %%i in (a, b, c) do (echo %%i)
for %%i in (*.*) do (echo %%i)
扩展语法
-
只遍历文件夹:
for /d %%i in (set) do ()
-
遍历指定文件夹下的所有文件,不指定则表示当前目录。如果set为
.
表示枚举目录树-
for /r [[drive:]path] %%i in (set) do ()for /r %%i in (*) do (echo %%i)
-
-
遍历数字序列
-
for /l %%i in (start,step,end) do ()
-
-
遍历文件内容
-
for /f ["options"] %%i in (set) do ()
-
通配符
? # 单个字符
* # 任意字符