Window下CMD命令语法应知应会

一、什么是cmd?

cmd是Windows系统下的命令行界面,可以通过快捷键Win+R调出运行框,输入"cmd"并按回车键来启动它。

cmd与Linux下的命令行类似,具备强大的功能,包括文件管理、网络操作、文本查看和进程管理等。虽然与Linux的命令行不同,但在Windows环境下,某些命令依然可以帮助我们解决问题,提升工作效率。

二、常用命令

进入目录的命令是

cd
,列出目录下的文件使用
dir

/A          显示具有指定属性的文件。
    属性         D  目录                R  只读文件               H  隐藏文件
                A  准备存档的文件       S  系统文件            I  无内容索引文件
                L  解析点             -  表示“否”的前缀
/B          使用空格式(没有标题信息或摘要)。
/C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来禁用分隔符显示。
/D          跟宽式相同,但文件是按栏分类列出的。
/L          用小写。
/N          新的长列表格式,其中文件名在最右边。
/O          用分类顺序列出文件。
    排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
                E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
                G  组目录优先           -  反转顺序的前缀
/P          在每个信息屏幕后暂停。
/Q          显示文件所有者。
/R          显示文件的备用数据流。
/S          显示指定目录和所有子目录中的文件。
/T          控制显示或用来分类的时间字符域。
    时间段      C  创建时间              A  上次访问时间
                W  上次写入的时间
/W          用宽列表格式。
/X          显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,短名称插在长名称前面。如果没有短名称,在其位置则显示空白。
/4          用四位数字显示年

递归列出路径下以"doc"结尾的文件,可以使用以下命令:

dir /s /b *.doc

查看本地路径下的目录,可以使用

dir
命令。复制文件使用
copy
,复制目录使用
xcopy
,剪切文件或目录使用
move
,重命名文件或目录使用
ren
,替换文件使用
replace

replace /a 路径一 路径二  # 将文件添加到新位置,类似于复制

自定义cmd界面

更改cmd窗口标题使用

title
,设置窗口大小(宽度、高度)使用
mode
,设置cmd的背景和字体颜色使用
color

0 = 黑色       8 = 灰色
1 = 蓝色       9 = 淡蓝色
2 = 绿色       A = 淡绿色
3 = 浅绿色     B = 淡浅绿色
4 = 红色       C = 淡红色
5 = 紫色       D = 淡紫色
6 = 黄色       E = 淡黄色
7 = 白色       F = 亮白色

变量设置

设置变量,使用

set
命令。以
name
变量为例:

@echo off
set /p name=请输入一个数字
echo 你输入的数字是:%name%
pause >nul

释放变量使用

set name=
。常用参数包括
set /a
用于表达式计算,
set /p
用于从命令行获取用户输入。

特殊字符和逻辑结构

特殊字符包括

|
(管道符号),
&
(类似于and),
&&
(前一个命令执行成功后才执行后一个命令),
||
(前一个命令执行失败后才执行后一个命令),
()
(用于美观和分隔)。

# dir执行成功打印success,否则打印false
dir && echo success || echo false

通配符中,

?
代表单个字符,
*
代表任意数量的字符。

逻辑结构使用

if
命令:

if exist 文件名 (echo 文件存在) else (echo 文件不存在)
if "字符串1" == "字符串2" (echo 相等) else (echo 不相等)
if defined str (echo 变量已定义) else (echo 变量未定义)
if 数值1 equ 数值2 (echo 相等) else (echo 不相等)

条件符包括

equ
(等于),
gtr
(大于),
geq
(大于或等于),
lss
(小于),
leq
(小于或等于),
neq
(不等于)。

for
循环的语法格式:

FOR %variable IN (set) DO command [command-parameters]
    %variable  指定一个单一字母可替换的参数。
    (set)      指定一个或一组文件。可以使用通配符。
    command    指定对每个文件执行的命令。
    command-parameters             为特定命令指定参数或命令行开关。

在批处理程序中使用

for
命令时,变量请使用
%%variable
而不是
%variable
。变量名称是区分大小写的。

重定向操作符

输出重定向使用

>
,追加输出使用
>>

句柄的数字代码描述

0:键盘输入 1:输出到命令提示符窗口 2:错误输出

网络命令

ping
命令用于测试网络连接:

ping host -t # 持续ping
ping host -n count # 发送指定数量的数据包

ipconfig
命令用于查看和管理网络配置:

ipconfig /all # 查看所有网络配置信息
ipconfig /renew # 更新所有适配器,重新获取IP
ipconfig /release # 释放IP
ipconfig /flushdns # 刷新DNS

netstat
命令显示当前网络协议连接情况。

net
命令用于管理网络资源:

net user # 查看用户信息
lusrmgr.msc # 图形用户管理
net localgroup # 本地用户组管理
net share
netsh

高级命令

attrib
命令用于改变文件属性。

goto
命令用于跳转到批处理文件中的标签:

goto part1
:part1
echo test
exit

call
命令用于调用其他批处理程序,
start
命令用于启动新窗口运行程序。

net use
命令用于管理IPC连接:

net use \\remote_machine\IPC$ /user:username password # 建立空连接
net use \\remote_machine\IPC$ /user:username password # 建立非空连接
net use z: \\remote_machine\c$ # 映射对方C盘到本地Z盘
net use \\remote_machine\IPC$ /del # 删除一个IPC$连接
net use z: /del # 删除共享映射

reg
命令用于管理注册表:

REG Operation [Parameter List]
    Operation  [ QUERY   | ADD    | DELETE  | COPY    |
                 SAVE    | LOAD   | UNLOAD  | RESTORE |
                 COMPARE | EXPORT | IMPORT  | FLAGS   ]

案例

在内网中使用

ping
命令查找存活主机:

@echo off
for /l %%i in (1,1,254) do (
    ping -n 1 -w 100 192.168.1.%%i | find "TTL=" && echo 192.168.1.%%i is alive
)
pause

批量创建文件或文件夹:

@echo off
for /l %%i in (1,1,10) do (
    echo. > file%%i.txt
    mkdir folder%%i
)
pause

批量找出特定后缀的文件名:

@echo off
for /r %%f in (*.txt) do (
    echo %%f
)
pause

在文件中检索关键字:

@echo off
set /p name=请输入你要搜索的内容:
type test.txt | findstr %name%
if %name%==exit (goto end) else (goto start)
:end
exit
pause >nul

设置IP和查看基本信息

命令 功能
winver 系统信息
gpedit.msc 组策略
regedit.exe 注册表
eventvwr 事件查看器
lusrmgr.msc 用户组查看器
services.msc 本地服务设置
devmgmt.msc 设备管理器
compmgmt.msc 计算机管理
diskmgmt.msc 磁盘管理实用程序

常用工具

命令 功能
regedt32 注册表编辑器
calc 启动计算器
taskmgr 任务管理器
mmc 打开控制台
write 写字板
notepad 打开记事本
mspaint 画图板
mstsc 远程桌面连接
charmap 启动字符映射表
osk 打开屏幕键盘
magnify 放大镜实用程序
mplayer2 媒体播放机