一、常见命令
1.md 创建目录
或者写mkdir也可以
md test
2.rd 删除目录
/S 递归删除
/Q 安静模式 不提示
rd /S /Q test
3.copy复制
copy /Y zhangsan/zhangsan.txt lisi
4.del 删除文件
/Q 安静模式
del /Q lisi\
5.type显示文件内容
type 1.txt
6.netstat查看端口
netstat -an
7.tasklist进程管理
tasklist 显示所有进程
taskkill 杀掉进程
taskkill /F /pid 92916
/F 强制杀死
二、批处理
1.echo
打开回显或关闭请求回复功能,或显示消息.
关闭命令的执行结果 只显示结果
@echo off
2.pause
命令暂停
3.start
调用外部程序:
start calc
4.set
设置变量
[设置变量]
格式:set 变量名=变量值
set name=zhangsan
[引用变量]
格式: %变量名%
echo %name%
[取消变量]
格式:set 变量名=
详细:取消后的变量若被引用%变量名%将为空
[展示变量]
格式:set 变量名
set name
[列出所有可用的变量]
格式:set
三、循环
1. 没有开关的for
实例:
@echo off
for %%i in (1,2,3)do (
echo %%i
)
pause > nul
注意:
( 不能换行,和do之间一定要空格
2. 带/f的for循环
带/F的for循环能对字符串进行操作,也能够对命令的返回值进行操作
test.txt文件内容:
hello
hahahha
test
123
读取文本内容
@echo off
for /f %%i in (test.txt)do (
echo %%i
)
pause > nul
3. /f的delims参数
读取到什么位置就不要在往后读取了
文件内容如下:
name:zhangsan
age:20
gender:boy
@echo off
for /f "delims=:" %%i in (test.txt)do (
echo %%i
)
结果如下:
name
age
gender
每行都读取到:就不在往后读取了
4. /f 的tokens
文件内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
@echo off
for /f "delims=: tokens=7" %%i in (test.txt)do (
echo %%i
)
结果如下:
/bin/bash
/sbin/nologin
这个功能和awk很像。delims 指定分隔符,tokens 指定打印第几段
4.1 打印多段
@echo off
这里要注意 如果要打印多段 变量的值要从定义的%%a 按照26字母顺序往后排
for /f "delims=: tokens=1,7" %%a in (test.txt)do (
echo %%a,%%b
)
root,/bin/bash
bin,/sbin/nologin
4.2 读取带空格的文本
hello world
echo test
I am a student
@echo off
for /f %%a in (test.txt)do (
echo %%a
)
结果如下:如果文本中空格,for在读取文本时候,就会已空格和tab作为读取分割符号
hello
echo
I
如果读取所有的内容,代码如下:
@echo off
for /f "tokens=*" %%a in (test.txt)do (
echo %%a
)
结果如下:
hello world
echo test
I am a student
5./f 的skip参数
从第n行开始读取
文本内容如下:
111
222
333
444
555
666
@echo off
for /f "skip=3" %%a in (test.txt)do (
echo %%a
)
pause > nul
结果如下:
444
555
666
四、if判断
1.命令返回值
%errorlevel%
@echo off
set comm=netstat -an
%comm% > nul 2> nul
#判断netstat -an命令是否执行成功
if %errorlevel% == 0 (
echo "Ok"
) else (
echo "faild"
)
pause > nul
2.判断目标(文件&目录)是否存在
@echo off
if exist test (
rd test
) else (
mkdir test
)