bat中一些命令使用
从开发转到自动化,最头疼的就是这个自动化脚本了,本以为很简单,可以等碰到问题越来越多,发现其实蛮难的,不过学会这些脚本语言,确实会提高效率的,下面就我所碰到的问题进行了简单的总结。
1. 显示时间:
echo %date:~0,10% %time:~0,8%>date1.txt (这种根据机器不同有时会显示2013/11/03,有时会显示2013-11-03)
set /p date1=<date1.txt
但如果想打印2013-11-03形式的用下面的命令:
%date:~0,4%-%date:~5,2%-%date:~8,2%
2. 提取文件第一行中的内容:
for /f "tokens=1* delims=:" %%a in ('findstr /n .* logName.txt^|findstr "^1:"') do set line=%%b (如果在cmd中输入只需要一个%就好了)
echo %line%>ltpLogName.txt
3. 提取文件中(文件只有一行)的某个值,以空格为间隔点
for /f "tokens=3 delims= " %%i in (kernel.txt) do set kernelVersion=%%i
4. 加减后再赋值
set /a passTests=%totalTests%-%failTests%
5. 判断文件是否存在并删除
if exist android (
rd android /s /q (del命令也可以)
)
6. 判断是否存在文件夹,没有则创建
if not exist %record_root_dir% (
md %record_root_dir%
)
7. 执行exe、bat脚本,通过call命令实现,如:
call test.bat
8. 在一定路径里执行命令,执行完后退出:
pushd %WORKSPACE%\tool
java -jar selectreport.jar "%selectReproPaht%" "%tempPaht%"
popd
9. 寻找文件中数字最大的文件夹,例如当前文件夹中的文件是按时间存档的,你想取最新的一个文件夹
set lastNumber=0
set currentNumber=0
set oneDir=oneDir
set record_date_dir=%date:~0,10%
set dir=D:\abc\*
Setlocal enabledelayedexpansion
for /d %%i in (%dir%) do (
set oneDir=%%i
set currentNumber=!oneDir:D:\abc\=!
if !currentNumber! GTR !lastNumber! (
set lastNumber=!currentNumber!
)
)
10. 解压缩文件(还需研究)
C:\Program Files\WinRAR\WinRAR.exe x test.tar.gz (这个是可以按原来的目录解压的)
C:\Program Files\WinRAR\WinRAR.exe e test.tar.gz (这个是把所有文件解压到当前目录)
11. 在cmd中执行PC关机命令
Shutdown -s -t 20 (表示20秒后关机)
12. 想查看与pc机所连手机的所有文件,可以在cmd里输入ddms
13. 解压文件:
call "C:\Program Files\WinRAR\WinRAR.exe" x IMGS.tar.gz
14. 延时:
ping -n 05 127.0.0.1>nul //这边的05表示延时5秒

浙公网安备 33010602011771号