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秒

posted @ 2013-11-08 11:47  fanny_芳  阅读(247)  评论(0)    收藏  举报