原来.Bat文档中还可以不显示命令行或者不显示运行结果,长知识了。
若要不显示运行指令,则在命令行前输入@echo off,后面的指令都不会运行时显示,但是运行结果会显示出来。若后面的某行指令需要显示的话,则@echo on就可以。
若要命令行结果不显示,则输出重定向到null,eg:ping -n 3 127.0.0.1 >nul
直观一些,给出对应.bat文档和显示结果。
1、只需要执行的结果,不需要其他命令行和其结果
Echo **BTTestMode**
@echo off
@.\device\devcon.exe enable "USB\VID_****&PID_****" >nul
ping -n 3 127.0.0.1 >nul
.\CopperkeyTool.exe /BTHtestmode
ping -n 1 127.0.0.1 >nul
.\device\devcon.exe disable "USB\VID_****&PID_****" >nul
pause
结果
2、
Echo **BTTestMode**
@echo off
@.\device\devcon.exe enable "USB\VID_****&PID_****" >nul
ping -n 3 127.0.0.1 >nul
@echo on
.\CopperTool.exe /BTHtestmode
@echo off
ping -n 1 127.0.0.1 >nul
.\device\devcon.exe disable "USB\VID_****&PID_****" >nul
pause
结果
3、
Echo **BTTestMode**
.\device\devcon.exe enable "USB\VID_****&****"
ping -n 3 127.0.0.1 >nul
.\CopperTool.exe /BTHtestmode
ping -n 1 127.0.0.1 >nul
.\device\devcon.exe disable "USB\VID_****&PID_****"
pause
结果
注意,有些命令若电脑不在管理员权限下是无法运行的,会显示找不到目录,这时更改权限,使.bat运行在管理员权限下(具体代码可参考之前博客),然后调到当前目录执行:cd /d %~dp0。
.bat中指令的简单应用
比如你有个批处理a.bat在D:\qq文件夹下
a.bat内容为
cd /d %~dp0
在这里
cd /d %~dp0的意思就是cd /d d:\qq
%0代表批处理本身 d:\qq\a.bat
~dp是变量扩充
d既是扩充到分区号 d:
p就是扩充到路径 \qq
dp就是扩充到分区号路径 d:\qq
/d是跳转到指定目录
cd(空格)XXX
是进入一个文件目录(文件夹)的命令
cd..是返回上一层文件目录(文件夹)的命令
cd\ 是直接退回分区根目录(也就是C盘或者D盘不进入任何文件夹)