一些常用的batch命令
最新工作中,需要编写一引起脚本文件,主要是为方便大家使用,尽量做到最简单的一键操作的功能。经过各种调试后,终于完成了功能,并且初步达到了当初的设想。
把最常用到的指令贴上来,方便以后需要时,能找到,也方便对有需要的人有所帮助。
@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命令相关推荐
- 【Linux】一步一步学Linux——batch命令(134)
00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 batch命令用于在指定时间,当系统不繁忙时执行任务,用法 ...
- Linux最常用的基础命令 下篇
Linux最常用的基础命令个人总结 shell脚本 脚本就是:写一堆指令存成一个文本,用于完成一些小任务 a="123" linux中定义一个变量 echo $a echo $b ...
- 常用 doc bat 命令总结
目录 常用链接 ・单词 ・Linux 本地常用命令 1.删除当前目录下的所有文件 2.删除当前目录下的所有文件夹 18. << EOF (<)<> 19. Git Bas ...
- Linux最常用的基础命令
Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存 64bit=内存的最 ...
- 作为一个java程序员,常用的linux命令(越攒越多)
本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...
- 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 ...
- Git学习系列之一些常用的Git命令收录更新ing
不多说,直接上干货! 前言 对于Git工具,有必要整理和总结一些常用实用的命令. http://p.primeton.com/articles/53cce3a3e138236138000026 ht ...
- 常用MySQL的命令集锦
常用MySQL的命令集锦 一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再 ...
- sudo apt get linux,常用sudo apt-get命令
常用sudo apt-get命令 (2018-02-22 13:08:06) 标签: it 大学 linux 杂谈 在操作系统Linux中,有些常用sudo apt-get命令需要熟记并使用. 1.s ...
最新文章
- Python使用matplotlib可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
- benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
- 蜜糖变砒霜:90%美国公司区块链项目将不再重启
- 微软称使用 Edge 而非 Chrome 能提升电池续航
- wpf 加载资源html,从资源文件加载WPF样式
- 中3d库后接负载_什么是假负载?如何利用假负载维修变频器?
- 第六讲:Obj-C 内存管理4 - 自动释放池
- updating error reports database解决方案
- 大神是如何装逼的 之 vim插件使用taglist和nerdtree
- 用K2设计一个工作流程
- 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现
- Clojure 学习入门(12)- map/pmap
- 2月26日 Scrapy入门
- LAMP兄弟连 视频教程集
- 相机快门和曝光时间的确定
- Excel表格之道 学习笔记(四)
- win10蓝屏代码_电脑蓝屏代码在哪看?如何解决
- python,ffprobe获取视频信息
- Java_多线程、并发控制、分布式锁、存储结构、消息队列常见问题
- Mathtype中使用inline导致word行间距不一致的问题解决方案