1.1 设置变量命令set
1.2 自定义DOS窗口color、title
1.3 网络连接相关
1.3.1 ping 命令
1.3.2 telnet 命令
1.3.3 网络适配器命令 ipconfig(修复–设置层面)
1.3.4 路由信息查看–tracert
1.4 Start 运行命令
1.5 call 调用命令
1.6 sort 排序命令
1.7 特殊字符
1.8 slmgr 激活系统
1.9 netstat 网络管理命令
1.10 net 网络命令
1.10.1 管理本地用户
1.10.2 网络环境管理
1.11 netsh网络配置命令行工具
1.11.1 netsh 基本概念及常见用法
1.11.2 netsh 修复网络故障(协议层面)
1.11.3 netsh 端口设置
1.11.4 netsh 获取wifi密码
1.12 tree文件夹结构查看
1.13 计划任务命令schtasks
1.14 文件夹或文件相关命令
2.1 批处理基本格式
2.2 goto跳转命令
2.3 重定向
2.4 条件判断结构 if-else
2.5 循环结构
0. 写在前面
DOS命令有很多,这里记录一下平常中使用比较频繁的,一篇文章肯定不能包含所有的命令,要想学好CMD命令和批处理,务必善用 CMD帮助信息!
1. 常用的CMD命令1.1 设置变量命令set
定义set:显示、设置或删除 CMD.exe 环境变量
用法示例:
set /? # 帮助信息set # 显示当前环境变量及其值set xx # 显示以 str 打头的环境变量及其值,xx表示环境变量名称set 变量=值 # 设置/修改环境变量set 变量= # 等于号之后跟一个空格表示清空环境变量 set /a # 后跟表达式,进行表达式运算set /p 变量=指定字符串 # 接收用户输入1.2 自定义DOS窗口color、titletitle # 改变窗口标题mode # 改变窗口大小color[背景][字体] # 改变背景和字体颜色1.3 网络连接相关1.3.1 ping 命令
ping(Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP 网络体系结构中应用层的一个服务命令,主要是向特定的目的主机发送 ICMP(Internet Control Protocol因特网报文控制协议)Echo请求报文,测试目的站是否可达及了解其有关状态。
最常用的是用来测试网络是否连通,比如:
ping www.baidu.com # 向百度发送数据包,并回显在DOS窗口
获取更多 ping 命令的用法可键入ping /?
1.3.2 telnet 命令
telnet:就是查看某个端口是否可以访问。因为该命令属于远程登陆命令,黑客经常使用它开启特定端口进行攻击,所以Windows默认不开启该功能,在控制面板可以开启此功能。
用法与示例:telnet www.baidu.com 80 # 查看域名www.baidu.com 80 端口是否开放1.3.3 网络适配器命令 ipconfig(修复–设置层面)
ipconfig:可用于显示当前的 TCP/IP 配置的设置值。这些信息一般用来检验人工配置的TCP/IP 设置是否正确
Def:使用tracert命令可以用于确定IP数据包访问目标时所选择的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
示例:tracert www.baidu.com # 将探测到目标主机百度的路由。1.4 Start 运行命令
Def: 启动一个单独的窗口一运行指定程序或命令,可以在命令行下运行一个程序,可用于打开盘符、文件、文件夹、网址、程序等
示例:start D: # 打开 D 盘start /max D: # 以最大化窗口打开 D 盘start /min D: # 以最小化窗口打开 D 盘start D:\demo.bat # 打开文件start www.baidu.com # 打开网址
注意: 如果文件夹名字有空格,需要加上双引号,比如:
start “” “Program Files” # 打开带空格的文件夹需遵循这样的格式书写1.5 call 调用命令
Def: 程序的互相调用,这是个非常重要的命令
示例:@echo offcall demo.bat # 如果被引用的文件与当前主程序不在同一目录,则需要填写被引用文件的完整路径echo 引用完成pause1.6 sort 排序命令
sort命令可对文件内容进行排序
示例:sort demo.txt # 对文件内容进行排序,不改变源文件sort / 3 demo.txt # 对第三个字母进行升序排列,不改变源文件sort demo.txt > demo1.txt # 重定向,在当前目录保存排序后的文件,类似于/o参数1.7 特殊字符符号名称说明|命令管道符将第一条命令的结果作为第二条命令的参数来使用&组合命令不管前面命令执行情况如何,后边的命令继续执行&&组合命令当第一个命令失败时,后面的命令不会执行||组合命令只有第一条命令失败时,才会执行第二条示例:dir F:\ | find “it” # 在 dir 结果中查找与 it 相关的文件或者文件夹1.8 slmgr 激活系统
slmgr:Windows软件授权管理工具
常用的参数有:slmgr /dli # 查看较为简略的系统激活信息slmgr /dlv # 显示详细的系统激活信息slmgr /xpr # 查看简略的系统激活信息slmgr /upk # 卸载产品密钥slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX # 安装或者替换密钥slmgr /ato # 开始利用安装的秘钥尝试在线激活Windows1.9 netstat 网络管理命令
netstat:显示协议统计信息和当前 TCP/IP 网络连接
net:包含了管理网络环境、服务、用户、登陆等重要的管理功能。通过改命令,可以轻松的管理本地或者远程计算机的网络环境,以及各种服务程序的运行和配置,或者进行用户管理和登陆管理等。
1.10.1 管理本地用户常用命令:用户操作命令net user # 查看当前计算机有哪些用户net user test /add # 添加一个名为 test 的用户net user test /delete # 删除名为test的用户用户组操作命令net localgroup Administrators test /add # 将test用户加入管理员组net localgroup Administrators test /del # 将test用户移出管理员组net localgroup users test /del # 将test用户移出users组1.10.2 网络环境管理常用命令:文件共享相关命令net share # 查看共享net share test=D:\test # 共享 D 盘下的test文件夹,等号左边是共享名,右边是共享文件夹位置net share test \del # 取消名为 test 的共享net view \\主机名 # 查看特定主机共享服务相关命令net start 服务 # 开启服务net stop 服务 # 关闭服务1.11 netsh网络配置命令行工具1.11.1 netsh 基本概念及常见用法
netsh:netsh(Network Shell)是一个Windows系统本身提供的功能强大的网络配置工具,可以用来修改Windows的IP、网关、DNS等信息
常见用法:#—-对网络配置进行备份—-#netsh dump > 路径#–在配置IP之前需要先进入IP设置环境netsh # 进入netsh环境int ip # 进入IP设置界面,之后就可以进行设置ip# 设置静态IPset address name=”WLAN” source=static addr=192.168.16.55 mask=255.255.255.0 gateway=192.168.16.6 gwmetric=1# 设置自动获取IPset address name=”WLAN” source=DHCP1.11.2 netsh 修复网络故障(协议层面)
-常用命令:
netsh winsock reset
该命令作用是重置 Winsock目录。如果计算机 Winsock协议配置有问题的话将导致网络连接等问题,通过重置 Winsock目录 以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。
net int ip reset C:\resetlog.txt # 最后是重置TCP/IP的日志文件存放位置
该命令将重置TCP/IP ,相当于卸载并重TCP/IP协议,使其恢复到初次安装操作系统时的状态。
1.11.3 netsh 端口设置
netsh命令的子参数中有两个命令是防火墙相关的:
firewall # 防火墙的简单模式advfirewall # 防火墙配置的高级模式开启3389端口netsh firewall set portopening TCP 3389 ENABLE关闭3389端口net firewall delete portopening TCP 3389新建/删除一个入站规则,dir=in表示入站规则,in换成out表示出站规则,协议采用TCPnet advfirewall firewall add rule name=baidujingyan dir=in action=allow protocol=TCP localport=3389netsh advfirewall firewall delete rule name=test protocol=TCP localport=33891.11.4 netsh 获取wifi密码
**注意:**获取wifi密码前提是想要获取密码的 wifi 曾经有连接过
# 查看当前系统已经保存的网络netsh wlan show profiles# 查看指定的WiFi名称的详细信息netsh wlan show profiles name=”ssid” key=clear1.12 tree文件夹结构查看
tree:以图形显示驱动器或路径的文件夹结构
参数:/F # 显示每个文件夹中文件的名称/A # 使用 ASCII 字符,而不是用扩展字符1.13 计划任务命令schtasks
Def:允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务
CMD环境键入schtask /?查看更多。
1.14 文件夹或文件相关命令命令作用dir显示目录中的文件和子目录列表mkdir、rmdir新建目录和删除目录ren(rename)用于重命名目录或文件,rename的缩写,格式:rename filename1 filename2copy将一份文件或多份文件复制到另一个位置del删除文件或目录move可用于移动、重命名文件或目录exist常用在判断语句中,判断是否存在某个文件2. 批处理2.1 批处理基本格式
批处理采取的是顺序处理的方式一条一条地去执行各项命令。因此学会了CMD命令再将想要的功能组成一个批处理文件就可以实现相应的功能。
以屏幕打印Hello World为例说明批处理中的一些基本命令:
@echo off # 关闭回显,命令行窗口不会显示我们写好的命令rem 该行是注释 # 注释行,解释说明,rem也可换成”::”echo Hello World # echo 打印,后接字符串或者变量(变量名需要用%围起来)set /p test=提示性文字 # 获取用户输入,等号左边是变量名字,等号右边是提示性文字echo %test% # 打印变量test的值exit # 在该处退出命令环境,之后的命令将不再执行pause # 暂停,使命令结束时窗口不立马关闭,缺少的话命令一结束dos窗口就会立刻关闭2.2 goto跳转命令
goto命令主要是进行跳转的作用:
@echo offrem 以下是代码主体部分echo Hello Worldgoto part1 # 前往名为”part1″的标签:part1 # 用”:”打头设置一个标签echo I am ready to exit!pause2.3 重定向
Def: 顾名思义,重定向就是将命令运行的结果或者一些数据流重新定位到其他的位置
重定向主要操作符> # 使用该操作符只会保留最新的内容,会覆盖原来的内容>> # 不会覆盖之前已经保存的内容,而是在文件尾追加新的内容< # 从文件中读取内容到屏幕上<< # 右边的内容追加到左边type # 查看文件内容示例ping www.baidu.com > D:\test.txt # 把结果重定到D盘的test.txt文件中type test.txt # 查看文件内容sort < demo.txt # 读取文件内容并排序,将排序结果打印在屏幕上
句柄的数字代码描述
0:键盘输入;1:输出到命令提示符窗口;2:错误输出
如下所示如果di命令运行成功就重定向right.txt,否则将重定向于error.log:
di > right.txt 2> error.log2.4 条件判断结构 if-else演示demo.bat:@echo offrem 演示if-else结构判断字符串是否为规定的字符串set /p str=please enter “Hello”:if %str%==Hello (echo OK) else (echo No)pause
**提示:**如果if-else中的语句太长可以采用以下格式
if 条件判断语句 (条件满足所执行的语句:语句1语句2) else (条件不满住所执行的语句:语句1语句2)2.5 循环结构for %%variable IN (set) DO command [command-parameters]
说明:%%variable: 指定一个单一字母可替换的参数,26字母可任意使用,且区分大小写(set) : 指定一个或一组文件。可以使用通配符command: 指定对每个文件执行的命令command-parameters: 为特定命令指定参数或命令行开关
**注意:**批处理程序中使用 FOR 命令时,指定变量需要用双百分号。
介绍几种常用的格式:遍历目录for /D %%variable IN (set) DO Command [command-parameters]
**说明:**如果set集中包含通配符,则指定与目录名匹配,而不与文件名匹配
遍历数字序列for /L %%variable IN (start,step,end) DO command [command-parameters]
说明:(start,step,end)表示以增量形式从开始到结束的一个数字序列。比如
(1,1,5)将产生序列1 2 3 4 5;(5,-1,1)将产生序列5 4 3 2 1
遍历文件for /R [[drive:]path] %%variable IN (set) DO command [command-parameters]
**说明:**如果在 /R 后没有指定完整路径,则使用当前目录。
遍历文件内容for /F [“options”] %%variable IN (file-set) DO command [command-parameters]for /F [“options”] %%variable IN (“string”) DO command [command-parameters]for /F [“options”] %%variable IN (‘command’) DO command [command-parameters]
说明: fileset 为一个或多个文件名。继续到 fileset 中的下一个文件之前,每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。键入for /?查看options内容。
示例:@echo offrem 遍历目录(文件夹名称)for /d %%f in (*) do if %%f==test (rd %%f)for /d %%f in (*) do echo %%fpause > nul@echo offrem 遍历目录和子目录文件for /r “D:\project” %%f in (*.py) do (echo %%f)pause > nul@echo offrem 遍历数字for /L %%n in (1,1,20) do (echo %%n)pause
THE
END