DOS命令基础
Luo zerone 菜菜子

DOS:批处理命令

batch file programming:批处理既是程序也是一种脚本

内部命令、外部命令:

image-20211222221825547

当你输入的命令无法识别的时候就会报错。

什么是内部命令呢?内部命令就是DOS自有的命令,比如 ipconfig,ping等

而外部命令就是 python,Java 等应用程序自己的命令

DOS命令基本格式

==主命令== + ==子命令== + ==参数==

以shutdown为例

image-20220414134849873

或者:

shutdown [ -i | -l | -s | -r | -a | -p | -h | -e] [-f] [-m \\Computer] [-t XXX] [-d [p|u:] XX:YY [-c “comment”]]

这里的方括号和其他的一些符号都是提示性的,在实际的命令中并不用键入

shutdown是主命令 -/等价

[ ] 方括号是可选参数,即你可以有也可以没有,| 是你最多只能在这些参数中选一个

尖括号 < > 表示可选参数下的子参数

大括号 {} 表示其中的项必选一项

省略号 … 表示可重复输入的项

命令帮助信息

/?

/help -help

获得命令的帮助信息,类似于Linux中的 man,help

直接输入命令而不加选项和参数也可以显示命令帮助信息

image-20220414130502085

@echo off:关闭盘符

当我们键入 echo hello world时,image-20211222220742631

会打印盘符,如果我们不想要输出这个信息,就可以使用这个命令。

image-20211222220918992

如上图所示,使用了该指令后,输入echo hello world,会打印hello world 而不会输出盘符信息。

echo:输出

pause:就是c语言中的system(“pause”),保持等待输入

image-20211222221312073

cls:清屏 clear screen

type:

​ 查看文件内容

算术运算

set /a [参数 ]

​ /a 表示要进行算术运算,方括号所代表的是带运算的式子

比如说:

image-20220414032145428

设置一个变量var:

image-20220414032416995

输出变量值:

echo %var%:输出变量var的值,并不能识别出单独var是一个变量,所以加%

image-20220414032505956

重定向运算

将数据或结果移交给下一个命令或文件中

  1. ​ > 重定向

image-20220414033336167

image-20220414033354528

  1. >> 重定向 和上一个的区别在于,本命令会在文件的尾部叠加输入,二单个>会导致输入把初始的文件内容覆盖
  1. < 和第一个作用一样,区别在于数据流的方向上,a > b :是把a的内容覆盖b a>b:b内容覆盖a
  1. <<

多命令运算

&& 与的作用

可以同时使用两个命令,需要注意的是这个命令符有短路作用,即第一个命令错的时候,第二个就不会执行了

image-20220414034410989

在这里两个命令都执行了

|| 或的作用

同时使用两个命令,即使第一个命令为假,但还是会执行第二个命令;但是如果第一个命令就为真的话就不会执行第二个命令,断路作用

image-20220414034457576

从图中可以看出,第一个命令有问题,但是第二个命令却执行了

image-20220414124411919

从图中可以看出二者的区别,第一个“与”中echo命令是有问题的,所以没有执行后面的type命令,而”或“命令中即使前一个”echo“有问题,但依然执行了后面的”type“命令

管道命令

|

注意这里是一竖, 例如 A|B 将A命令的输出作为B命令的输入

image-20220414130026782

第一个命令得到的输出,然后从这些输出作为第二个命令的输入,find是找出这些输入中是ESTABLISHED的项

bat文件参数传递

%

image-20220414150004203

在bat文件中,这个 % 就代表了是参数变量,当我们运行这个bat文件并在后面协商参数,就会把这些参数传入到这些变量并替代。需要注意的是,变量是有顺序的,如图所示,我们先传递的“hello”替代了%1,而%1再%2的后面,所以说他会晚于%1输出结果。

image-20220414150101554

注释符

rem + 注释内容

image-20220414151953418

调用其他bat文件

call

直接命令 + 要调用的bat文件就行

image-20220414162839874

不过虽然可以调用其他的bat文件,但是却无法向其传递参数

image-20220414162805825

这个是无法给2.bat传递参数的

任务查看

tasklist

显示当前主机或者远程主机正在运行的任务列表

1.查看远程主机的任务列表

当我们知道远程主机的IP地址,就可以查看该主机上的任务列表了,但前提是需要身份认证的

1
tasklist  /S  192.168.1.1  /U [username]   /P  [password]

image-20220415012533099

任务关闭

taskkill

关闭某个正在进行的任务

关机、重启命令

shutdown

image-20220415014116010

计划任务命令

在每天固定指定某个exe文件

at 该命令已在win10中禁用 改成了schtasks

image-20220415020555887

批处理环境变量

set

设置变量,同时也可以显示本机当前的环境变量

image-20220415095841486

输出某个环境变量,这个变量要加两个 % 才行

image-20220415100001803

文件处理命令

目录查看命令

dir

会显示当前路径下的所有目录信息

image-20220415101914690

相关参数:

image-20220415101957564

文件夹结构查看

tree 以树形结构展示本目录

image-20220506105040751

新建目录

md 或 mkdir

​ md [盘符][路径]

image-20220415102139238

执行这个命令后在当前路径下创建了一个 test 目录

删除目录

rd 或 rmdir 类似于 rm

​ rd [盘符][路径] 但该命令只能删除空目录

image-20220415102355405

执行这条指令后,将删除当前路径下的test目录

image-20220415102849604

因为test目录不为空,如果用该命令删除该目录,会报错,所以 rd 并不能删除非空目录

切换目录

cd

文件重命名

ren 或 rename

image-20220415105903304

将test目录的名称改为test1

目录复制

copy

image-20220415110143510

将1.bat文件复制到test1目录中

删除文件

del

image-20220415110715064

删除当前路径下的1.bat文件

移动文件或重命名

move

image-20220415130843031

将b目录下的1.bat文件移动到当前路径下

网络命令

net user

显示用户成员

image-20220506014138943

net user 用户名

显示用户的详细信息,如下所示

image-20220506014030189

net user username userpwd /add 添加用户

添加一个用户,其用户名为username 密码是userpwd

用户组操作命令

net localgroup

显示用户组信息

image-20220506110119197

ner localgroup users

显示users用户组的用户成员

image-20220506110207316

net localgroup groupName user /add

向groupName用户组添加user用户 将admin用户添加到administrators用户组当中

image-20220415132638081

net localgroup groupName /add

添加用户组

image-20220506110957788

image-20220506111258664

添加后的结果中多了一个testgroup组

主机连通性

ping

发送ICMP数据包到目标主机

网络远程连接命令

telnet

条件判断语句

if-else

image-20220415154002842

这里的else必须和if在同一行才行,判断条件不用加括号,但是执行语句要加括号

判断文件是否存在

exist

image-20220415154640992

循环结构

for

  • 本文标题:DOS命令基础
  • 本文作者:Luo zerone
  • 创建时间:2022-05-10 08:13:34
  • 本文链接:http://zer-one.github.io/2022/05/10/DOS命令基础/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!