@echo off 关闭盘符
echo “hello” 输出语句
pause 暂停
算术运算
命令模式 set /a 1+2
,只能执一次
#文本模式,可以执行多次 @echo off set /a var =1+2 echo %var% pause
重定向
将输出结果移交到下一条命令中,或者将结果输出
>会覆盖 >>追加 echo "hello" >>a.txt
type a.txt
输出文件内容
多命令运算符
&& 具有短路,第一个命令错误不会执行第二个命令
|| 第一个命令成功就不会执行第二个。第一个命令错误 ,第二个会执行 但是
ipconfig && net user 查看用户
管道运算
A|B
A命令的输出当做B命令的输入
dir | find “.txt”
筛选出有.txt的文件
dir得到的结果默认放在###的位置 find ".txt" ###
批处理的基本命令
命令格式:命令 子命令 参数 操作 选项
命令帮助信息查看: 命令 /?
详细信息:命令 /help
批处理文件参数传递
.bat文件接收参数使用%num
例如:net user %1 %2 /add
@echo off echo %1 echo %2 pause #使用 a.bat hello 123
注释
rem 这是一个注释
修改命令提示符颜色
颜色命令:color
标题命令: title
时间相关命令
日期命令:date
时间命令:time
启动命令
start
调用其他bat文件
call 2.bat
需要加上路径,这样也能实现参数的传递
任务列表查看命令
tasklist
任务关闭命令
taskkill
文件夹结构命令
tree
tree /f
同时显示文件和文件夹
关机命令
shutdown
计划任务命令
at
at 22:00 /every:M,T,W,TH,F,S,Su C:\abc.exe
批处理环境变量
set
文件夹或文件相关命令
dir
目录浏览
目录新建与删除
mkdir
创建目录
rmdir
删除目录
目录切换
cd
重命名
ren old new
拷贝
copy source dest
文件删除
del a.txt
可以使用通配符
文件创建
echo>a.txt
nul >a.txt
文件目录剪切、重命名
move
用户操作命令
net user
仅仅有默认权限,如果提升权限需要配合用户组操作命令
用户组操作命令
net localgroup
网络检测
ping
网络连接命令
telnet
路由信息查看
tracert
网络适配器
ipconfig
条件判断
@echo off rem 演示if-else结构,判断字符串为规定字符串 set v=hello rem=左右最好不要有空格 if %v%==hello (echo ok) else (echo no) rem需要写在一行 pause>nul rem将pause的内容重定向到空,就不会出现 “请按任意键结束标语”
文件存在判断
exist
@echo off if exist c:\1.bat (echo ok) else (echo no) rem需要写在一行 pause > nul
@echo off if exist c:\1.txt ( echo file is find! del c:\1.txt ) else ( rem 关键字必须与左右括号之间都有空格 echo file is not find! ) pause > nul
循环结构
for /d in () do 具体操作
rem 遍历目录 for /d %%a in (路径/*) do echo %%a rem /d是遍历文件夹 %%a保存的变量 在文件中要将%i使用%%i来代替,%%1不会出现变量扩展的问题,在循环中同步更新%%i的值 for /d %%a in (*) do if %%a==test mkdir %%a rem 遍历目录下及子目录的文件 for /r 目录路径 %%v in (匹配规则 *.txt) do echo %%v rem 遍历数字 for /L %%v in (start,setp,end) do echo %%v rem 遍历文件内容 for /f %%v in (文件名) do echo %%v rem对每一行进行遍历
代码实例
rem 重复创建目录 @echo off cd C:/ :loop md newDir cd newDir goto loop pause>nul exit
rem交互操作 @echo off echo 1.a echo 2.b echo 3.c echo 4.d :first echo Enter your option: set /p opt= if %opt%==1 goto one if %opt%==2 goto two if %opt%==3 goto three if %opt%==4 goto four echo Invalid option goto first :one echo choice one pause > nul exit rem一定要退出,不然会执行下面的语句 :two echo choice two pause > nul exit :three echo choice three pause > nul exit :four echo choice four pause > nul exit