Window批处理自动打包升级包

 有人大致说过这样的话:如果有一件工作你每天都做,而且每天在这件事是耗时超过90S,那么你就需要让机器来做了。

         我最近几个月每天都会给别人打升级包,从不同的地方获取10个不同的文件,这些破文件来自不同的人。打包时需要把文件放到不同的目录下或者不同的压缩包中。由于我们的设备是QNX设备,其压缩包采用的是tar.gz的压缩格式,而我安装的压缩软件HaoZip不支持直接将文件拖拽入.tar.gz包中,需要解压、压缩。每天耗时绝对超过10分钟,于是就不得不搞一搞DOS批处理,以前是懒的写(可能内心觉得自己做不好),写完才知道,原来批处理才是最好的偷懒啊。

以下是本次的主要知识点:

知识点:

获取当前脚本的路径:

setcurrent_path=%cd%

打印变量值(引用变量值)

echo%current_path%

从控制带获取变量值

SET/P variable=[promptString]  

eg:

set/p project_name=Input project name, such as XXXX:

if语句(注意空格)

a.判断字符串是否为空

eg:

if"%project_name%"=="" (

echo#####error:Project name is NULL && goto error_Delete_Output

)

b.判断文件是否存在,连字符&&:

eg:

ifnot exist  %MCU_DIRECTORY% ( echo%MCU_DIRECTORY% not exist ! && goto error_Exit)

删除文件夹(文件夹中亦有文件夹)

echoy|DEL %OUT_DIRECTORY%\*.* && echo y|RD /S %OUT_DIRECTORY%

判断文件夹是否为空:

dir/a /b %current_path%\%MCU_DIRECTORY%|findstr .* >nul||echo Warning:input_MCUdirectory is empty && goto error_Exit

XCOPY,将指定目录连文件和目录结构一起拷贝(/E:复制目录和子目录,包括空的;/Y:直接覆盖):

XCOPY/E /Y .\%OS_DIRECTORY%\* .\%OUT_DIRECTORY%\ && echo copy os packet over

copy单个文件(注意路径中的斜线):

copy%MPU_DIRECTORY%\base_packet\base.tar.gz%OUT_DIRECTORY%\update\packets\base.tar.gz && echo copy base packetover

.tar.gz文件解压(HaoZip-好压)

rem 设置压缩软件路径

setcompression_software=D:\Program Files\2345Soft\HaoZip\

 

rem 切换到压缩软件路径

cd/d %compression_software%

 

rem 将base.tar.gz解压输出到%current_path%\output\update\packets\

HaoZipCx %current_path%\output\update\packets\base.tar.gz-o%current_path%\output\update\packets\

.tar.gz文件的压缩

rem 切换到压缩软件路径

cd/d %compression_software%

rem 将%current_path%\output\update\packets\*所有内容打包为一个tar包

HaoZipCa -ttar %current_path%\output\update\packets\%project_name%.tar      %current_path%\output\update\packets\*

HaoZipCa -tgzip %current_path%\output\update\packets\%project_name%.tar.gz  %current_path%\output\update\packets\%project_name%.tar

 

PS:

最近越发觉得自己的水平接近于一位同龄同事五年前(此子大三)的水平:”不滞于物,草木竹石均可为剑。自此精修,渐进于无剑胜有剑之境“。当然自己现在还滞于各种物,但终觉其有迹可循,许是错觉吧,哈哈。

嗯,短短100行的批处理,我居然断断续续用了三天,打脸!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值