最新工作中,需要编写一引起脚本文件,主要是为方便大家使用,尽量做到最简单的一键操作的功能。经过各种调试后,终于完成了功能,并且初步达到了当初的设想。

把最常用到的指令贴上来,方便以后需要时,能找到,也方便对有需要的人有所帮助。

@set VERSION_FILE_PATH=../../app/common/interface.c
@sed -n -e 's/#define[ \t]*SW_VERSION_PINK[ \t]*[\(]*[ \t]*\([0-9]*\)[ \t]*[\)]*.*$/\1/p'  %VERSION_FILE_PATH% > ver.txt
@set /p SW_VER= < ver.txt
@del ver.txt@set SW_VER_HIGH=%SW_VER:~0,-2%
@set SW_VER_LOW=%SW_VER:~-2,2%

上面的是获取文件中文件中的某个值或者说版本号,通过版本号,在生成所需要的文件中,不需要重新定义及修改。

if exist ME_Africa_sattp_S2.bin (echo "ME_Africa_sattp_S2.bin exist"
) else (
echo "ME_Africa_sattp_S2.bin No exist"
SatTPClient.exe ME_Africa_sattp_S2.cfg ME_Africa_sattp_S2.bin
)
if exist Softcam.bin (echo "Softcam.bin exist"
) else (
echo "Softcam.bin No exist"
Softcam.exe
)

上面主要是判断文件是否存在,如果文件不存在,则执行else 中的文件生成文件,这样节约时间。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (set DriveU=%%a
)
if defined DriveU (echo Update file Copy tu USB drive, please wait...COLOR 0Acopy MT_pink_update.bin %DriveU%\Software_V%SW_VER_HIGH%.%SW_VER_LOW%_%day%-%month%-%year%.bin
) else (echo Please insert the usb flash drive.)

这个主要是获取是否已经插入可移动磁盘,如果插入可移动磁盘,就会自动Copy到移动磁盘中。现好像只支持U盘,移动硬盘倒是没有测试过。如果有问题,需要简单的修改一下就可以,也可以按照下面的配置要求,进行修改,达到所需要的要求。。

wmic logicaldisk where drivetype='2' get deviceid,description
wmic logicaldisk where "drivetype=2" get name
::2=移动磁盘、3=本地磁盘、5=光驱。
:loop
@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (set DriveU=%%a
)::判断DriveU是否为空
if defined DriveU (echo Is in copy, please wait ...ping -n 3 127.0.0.1>nulCOLOR 0Acopy .\mapp.bin %DriveU%\mapp.binping -n 3 127.0.0.1>nul
) else (echo Please insert the usb flash drive[请插入U盘]ping -n 3 127.0.0.1>nul
goto loop)exit

这个功能主要是Copy到U盘中,如果没有插入U盘,会一直提示你插入U盘,循环进行检测,直到插入U盘后Copy到U盘中才停止。而

ping -n 3 127.0.0.1>nul
主要是为了延时使用的。使用时需要调用@echo off关掉打印。


其实上面所使用的这些,无非就是对for的使用,通过学习,总结到如下几点:
<pre name="code" class="plain">FOR [参数] %%变量名 IN (相关文件或命令)   DO 执行的命令
FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令
参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
比如:for /l %%i in (1,1,5) do @echo %%i  --输出1 2 3 4 5   FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)
参数 /d (参数只能显示当前目录下的目录名字)
比如:
for /r c:/ %%i in (boot.ini) do echo %%i --枚举了c盘所有目录
for /r d:/backup %%i in (1) do echo %%i  --枚举d/backup目录格式:FOR /D %variable IN (set) DO command [command-parameters]
参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录下的目录名字。(TTT特别说明:只会搜索指定目录下的目录,不会搜索再下一级的目录。)  tokens:它的作用就是当你通过delims将每一行分为更小的元素时,由它来控制要取哪一个或哪几个。

FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令

<span style="color: rgb(255, 0, 0); font-family: Arial; font-size: 14px; line-height: 21px; widows: auto;"></span><div style="font-family: 微软雅黑; font-size: 14px; line-height: 21px; widows: auto;"><span style="font-family:Arial;background-color: inherit;"><span style="color:#ff0000;background-color: inherit;">FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] </span><span style="color: rgb(51, 51, 51);">  </span><br style="background-color: inherit;" /></span></div><div style="font-family: 微软雅黑; font-size: 14px; line-height: 21px; widows: auto;"><span style="font-family:Arial;background-color: inherit;"><span style="color:#4bacc6;background-color: inherit;">参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)</span><br style="background-color: inherit;" /></span></div><div style="font-family: 微软雅黑; font-size: 14px; line-height: 21px; widows: auto;"><span style="font-family:Arial;background-color: inherit;"><span style="color:#4bacc6;background-color: inherit;">参数 /d (参数只能显示当前目录下的目录名字)</span></span></div><span style="color: rgb(255, 0, 0); font-family: 宋体; font-size: 14px; line-height: 21px; widows: auto;">delims 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键</span>

学习时,主要是参考如下文章,也感谢他们的默默奉献:

http://bbs.bathome.net/viewthread.php?tid=2899

http://www.cnblogs.com/adforce/p/3282591.html

一些常用的batch命令相关推荐

  1. 【Linux】一步一步学Linux——batch命令(134)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 batch命令用于在指定时间,当系统不繁忙时执行任务,用法 ...

  2. Linux最常用的基础命令 下篇

    Linux最常用的基础命令个人总结 shell脚本 脚本就是:写一堆指令存成一个文本,用于完成一些小任务 a="123" linux中定义一个变量 echo $a echo $b ...

  3. 常用 doc bat 命令总结

    目录 常用链接 ・单词 ・Linux 本地常用命令 1.删除当前目录下的所有文件 2.删除当前目录下的所有文件夹 18. << EOF (<)<> 19. Git Bas ...

  4. Linux最常用的基础命令

    Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存 64bit=内存的最 ...

  5. 作为一个java程序员,常用的linux命令(越攒越多)

    本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...

  6. Linux常用20条命令

    Linux常用20条命令 假装这里有个标题 1.cd 2.ls 3.grep 4.find 5.cp 6.mv 7.rm 8.ps 9.kill 10.kill all 11.file 12.tar ...

  7. Git学习系列之一些常用的Git命令收录更新ing

    不多说,直接上干货!  前言 对于Git工具,有必要整理和总结一些常用实用的命令. http://p.primeton.com/articles/53cce3a3e138236138000026 ht ...

  8. 常用MySQL的命令集锦

    常用MySQL的命令集锦 一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再 ...

  9. sudo apt get linux,常用sudo apt-get命令

    常用sudo apt-get命令 (2018-02-22 13:08:06) 标签: it 大学 linux 杂谈 在操作系统Linux中,有些常用sudo apt-get命令需要熟记并使用. 1.s ...

最新文章

  1. Python使用matplotlib可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
  2. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  3. 蜜糖变砒霜:90%美国公司区块链项目将不再重启
  4. 微软称使用 Edge 而非 Chrome 能提升电池续航
  5. wpf 加载资源html,从资源文件加载WPF样式
  6. 中3d库后接负载_什么是假负载?如何利用假负载维修变频器?
  7. 第六讲:Obj-C 内存管理4 - 自动释放池
  8. updating error reports database解决方案
  9. 大神是如何装逼的 之 vim插件使用taglist和nerdtree
  10. 用K2设计一个工作流程
  11. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现
  12. Clojure 学习入门(12)- map/pmap
  13. 2月26日 Scrapy入门
  14. LAMP兄弟连 视频教程集
  15. 相机快门和曝光时间的确定
  16. Excel表格之道 学习笔记(四)
  17. win10蓝屏代码_电脑蓝屏代码在哪看?如何解决
  18. python,ffprobe获取视频信息
  19. Java_多线程、并发控制、分布式锁、存储结构、消息队列常见问题
  20. Mathtype中使用inline导致word行间距不一致的问题解决方案

热门文章

  1. AUTOSAR Diagnosis Message Configuration
  2. 免流量LoRa智慧农业解决方案
  3. 设计模式之禅《一》 大旗不挥,谁敢冲锋 ——6大设计原则
  4. 【算法设计】P和NP问题的前世今生
  5. mac修改mysql端口
  6. Chrome现在会在地址中隐藏WWW和HTTPS://。 你关心?
  7. vue el-date-picker日期选择器
  8. 图像处理中几个基本的处理方法c#代码实现
  9. 公园数字呼叫广播系统方案
  10. 国内android6.0,更流畅体验佳 可升级安卓6.0机型盘点