DOS:批处理命令
batch file programming:批处理既是程序也是一种脚本
内部命令、外部命令:

当你输入的命令无法识别的时候就会报错。
什么是内部命令呢?内部命令就是DOS自有的命令,比如 ipconfig,ping等
而外部命令就是 python,Java 等应用程序自己的命令
DOS命令基本格式
==主命令== + ==子命令== + ==参数==
以shutdown为例

或者:
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
直接输入命令而不加选项和参数也可以显示命令帮助信息

@echo off:关闭盘符
当我们键入 echo hello world时,
会打印盘符,如果我们不想要输出这个信息,就可以使用这个命令。

如上图所示,使用了该指令后,输入echo hello world,会打印hello world 而不会输出盘符信息。
echo:输出
pause:就是c语言中的system(“pause”),保持等待输入

cls:清屏 clear screen
type:
查看文件内容
算术运算
set /a [参数 ]
/a 表示要进行算术运算,方括号所代表的是带运算的式子
比如说:

设置一个变量var:

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

重定向运算
将数据或结果移交给下一个命令或文件中
- > 重定向


- >> 重定向 和上一个的区别在于,本命令会在文件的尾部叠加输入,二单个>会导致输入把初始的文件内容覆盖
- < 和第一个作用一样,区别在于数据流的方向上,a > b :是把a的内容覆盖b a>b:b内容覆盖a
- <<
多命令运算
&& 与的作用
可以同时使用两个命令,需要注意的是这个命令符有短路作用,即第一个命令错的时候,第二个就不会执行了

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

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

从图中可以看出二者的区别,第一个“与”中echo命令是有问题的,所以没有执行后面的type命令,而”或“命令中即使前一个”echo“有问题,但依然执行了后面的”type“命令
管道命令
|
注意这里是一竖, 例如 A|B 将A命令的输出作为B命令的输入

第一个命令得到的输出,然后从这些输出作为第二个命令的输入,find是找出这些输入中是ESTABLISHED的项
bat文件参数传递
%

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

注释符
rem + 注释内容

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

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

这个是无法给2.bat传递参数的
任务查看
tasklist
显示当前主机或者远程主机正在运行的任务列表
1.查看远程主机的任务列表
当我们知道远程主机的IP地址,就可以查看该主机上的任务列表了,但前提是需要身份认证的
1 | tasklist /S 192.168.1.1 /U [username] /P [password] |

任务关闭
taskkill
关闭某个正在进行的任务
关机、重启命令
shutdown

计划任务命令
在每天固定指定某个exe文件
at 该命令已在win10中禁用 改成了schtasks

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

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

文件处理命令
目录查看命令
dir
会显示当前路径下的所有目录信息

相关参数:

文件夹结构查看
tree 以树形结构展示本目录

新建目录
md 或 mkdir
md [盘符][路径]

执行这个命令后在当前路径下创建了一个 test 目录
删除目录
rd 或 rmdir 类似于 rm
rd [盘符][路径] 但该命令只能删除空目录

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

因为test目录不为空,如果用该命令删除该目录,会报错,所以 rd 并不能删除非空目录
切换目录
cd
文件重命名
ren 或 rename

将test目录的名称改为test1
目录复制
copy

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

删除当前路径下的1.bat文件
移动文件或重命名
move

将b目录下的1.bat文件移动到当前路径下
网络命令
net user
显示用户成员

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

net user username userpwd /add 添加用户
添加一个用户,其用户名为username 密码是userpwd
用户组操作命令
net localgroup
显示用户组信息

ner localgroup users
显示users用户组的用户成员

net localgroup groupName user /add
向groupName用户组添加user用户 将admin用户添加到administrators用户组当中

net localgroup groupName /add
添加用户组


添加后的结果中多了一个testgroup组
主机连通性
ping
发送ICMP数据包到目标主机
网络远程连接命令
telnet
条件判断语句
if-else

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

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