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
算术运算
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地址,就可以查看该主机上的任务列表了,但前提是需要身份认证的
tasklist /S 192.168.1.1 /U [username] /P [password]
任务关闭
taskkill
关闭某个正在进行的任务
更多参数查看 help
关机、重启命令
shutdown
计划任务命令
在每天固定指定某个exe文件
at 该命令已在win10中禁用 改成了schtasks
批处理环境变量
set
设置变量,同时也可以显示本机当前的环境变量
输出某个环境变量,这个变量要加两个 % 才行
文件处理命令
目录查看命令
dir
会显示当前路径下的所有目录信息
相关参数:
文件夹结构查看
tree 以树形结构展示本目录
文件内容查看:
type:
查看文件详细内容
新建目录
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 username
显示用户的详细信息,如下所示
net user username userpwd 修改用户密码
将用户的密码改为userpwd
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