MTK工作中可以使用的批处理脚本

MTK的独特的开发方式,大大缩短了开发的周期。

以至于到了后期,手机开发变成了一个拼价格,拼速度的过程。

在一些小公司,有些开发周期短短的不到一星期,而且既要面对客户无休止的修改,甚至可能一个人会负责三个以上的项目。

如何提高个人工作效率,成为许多开发者难以回避的问题。

一个好的想法,就是尽量把电脑能做的工作让电脑做,电脑搞不定的工作再由人来实现。

这让我们想起DOS早期的批处理,不错,这些脚本成了很不错的选择,可以大大减轻我们的工作量。

介绍几个我常常使用的脚本:

1.删除SVN版本文件,使用SVN管理版本的公司,有时会遇到这个问题,当然你搜索SVN,然后把找到的全部删掉,也是可以的,但有了太多的人的活动,这个工作可以由电脑自己完成。下面是我使用脚本:

 

for /r . %%a in (.) do @if exist "%%a/.svn" rd /s /q "%%a/.svn" | @echo %%a

这是个很简单的使用FOR实现循环删除文件夹并显示删除内容的脚本,因为RD不支持连续删除,但有了FOR就可以实现这一效果了。

2.如果使用CVS管理,改一下就可以了。

for /r . %%a in (.) do @if exist "%%a/.cvs" rd /s /q "%%a/.cvs" | @echo %%a

3.我们的代码全SVN管理,我可以使用下面的脚本,使电脑自己实现从SVN库中下载代码,编绎程序,如果你要使用,大概需要针对你自己的项目做一些修改。

title fzd_x760b_01
svn export http://mtksoftver/6225_06B/Branch/X760B/Version/FZD_X760B_03/1.0T01
ipmsg /msg jiazhiguo svnfinished
@for /d %%x in (*) do cd %%x/main
call copyfile FZD_X760B_01
ipmsg /msg jiazhiguo copyfinished
call make x225b gprs new
ipmsg /msg jiazhiguo make finished

该文件修改CMD窗口标题,接着执行SVN EXPORT命令从SVN下载文件,下载完成后,我使用飞鸽给自己发消息说明下载完毕,然后MAIN文件夹执行拷贝私有文件,接着编绎该项目。编绎完后我就可以去查看编绎结果,发版本。

4.有时我们会为输入常常的编绎指令而痛苦,影响了时间,这时我会使用下面的批处理,把该批处理放到MAIN文件夹下,起名为NEWMAKE,到该目录下,直接双击该文件,就可以NEW我们的项目了,唯一需要解释的是,你要保证你的MAKE文件夹下只有一个项目。

cd make
if exist *gprs.mak goto gprs
if exist *gsm.mak goto gsm
echo 找不到可用的MAKE文件
goto end
:gprs
for %%x in (Verno*.bld) do set a=%%x
cd ../
make %a:~6,-4% gprs new
goto end
:gsm
for %%x in (Verno*.bld) do if set a=%%x
cd ../
make %a:~6,-4% gms new
:end

该批处理会分析我们的make文件和VERNO文件,确定项目的类型和项目名称,自己启动NEW指令。

5.如果既想编程序,又想编模拟器,就可以使用下面的批处理。

call make LCSH23C_07B GPRS new
call make LCSH23C_07B GPRS gen_modis
call make LCSH23C_07B GPRS codegen_modis
call make -debug LCSH23C_07B GPRS new_modis

这个脚本太简单了,以至于不需要做过多说明,可能有人会奇怪,为什么使用CALL,不使用似乎也不会错,不使用有时候是会有错的,CALL是批处理调用子批处理的关键字。有了他可以保证在调用过程中一直在最初建立的那个命令行窗口。

6有些公司安装了分布式编绎器,这可是个好玩意,可以极大的提高编绎速度,特别是在公司电脑配置不太好的情况下,这无疑可以节省很多加班时间。但这一执行过程也可以使用批处理来完成,下面就是调用分布式编绎模拟器的批处理。

call m lc6225_gemini gprs gen_modis
call m lc6225_gemini gprs codegen_modis
IF NOT DEFINED MTK_COMPILE_SERVER set CMD_ARGU=-j16
IF NOT DEFINED MTK_COMPILE_SERVER set DISTRIBUTED_BUILD_CMD=XGConsole /command="
IF NOT DEFINED MTK_COMPILE_SERVER set DISTRIBUTED_BUILD_PARAMS=" /profile="profile.xml"
IF NOT DEFINED MTK_COMPILE_SERVER ./tools/IncrediBuildReg.exe
IF DEFINED MTK_COMPILE_SERVER set CMD_ARGU=-j4
IF DEFINED MTK_COMPILE_SERVER set DISTRIBUTED_BUILD_CMD=
IF DEFINED MTK_COMPILE_SERVER set DISTRIBUTED_BUILD_PARAMS=
BuildConsole ./MoDIS/modis.dsw /build /log=log.txt
pause

7.一般来说,编绎结束后,我们需要把生成的BIN软件和数据库校准文件打包发给测试部门或者客户,这一过程也是可以使用脚本的。

cd ../../build
@for /d %%x in (*) do cd %%x
for %%x in (*.bin) do set a=%%x
rar a ../../%a%.rar %a%
cd tst/database_classb/
rar a ../../%a%.rar BPLGUInfo*SrcP_*
把该脚本放在MAIN文件夹下,编绎完成后可以执行他,就可以把需要的文件使用项目名称打包。当然你如果需要邮件发给客户,大约可以写一个VBS脚本执行这一过程,这里不再赘述。

8.如果是下班情况下,就可以把以上的批处理使用CALL串连起来,甚至把多个项目串连起来执行。然后你就可以下班走人,让电脑做你以上的工作。当然这还不完美,因为你的电脑做完这些工作后,并没有休息,他还在消耗公司的电力资源,这是不应该的。最后一条指令,自动关机。

at 23:30 shutdown -s

这条指令的操作,可以实现在23:30分自动关机,也许你觉得这还不完善,因为也许你的电脑早早的就完成了工作,也许23:30还没有完成,你可以自己在AT后设置任意的时间,如果你害怕自己估计不准,那就把最后一条指令去掉AT和时间,然后加到最后一个批处理里,比如我们最后一个批处理可能是第七条,可以这样写:

cd ../../build
@for /d %%x in (*) do cd %%x
for %%x in (*.bin) do set a=%%x
rar a ../../%a%.rar %a%
cd tst/database_classb/
rar a ../../%a%.rar BPLGUInfo*SrcP_*
shutdown -s

压缩文件完成后就可以关机

 

 还有几个注册表文件也挺有用。

在右键添加CMD,可以直接打开带路径的CMD,用于编绎:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/Folder/shell/cmd/Command]
@="Cmd.exe /k cd /"%1/""
[HKEY_CLASSES_ROOT/Directory/shell/CMD/cmd]
@="Cmd.exe /k cd /"%1/""
[HKEY_CLASSES_ROOT/Drive/shell/cmd]
@="Cmd.exe /k cd /"%1/""

在右键添加重命名PBM菜单,可以把选中文件夹里的文件改为扩展名为PBM

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT/Folder/shell/ren PBM]

[HKEY_CLASSES_ROOT/Folder/shell/ren PBM/Command]
@="Cmd.exe /c cd /"%1/" & ren *.bmp *.PBM"

在右键添加重合名BMP菜单,可以把选中文件夹里的扩展名为PBM的改为BMP

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT/Folder/shell/ren bmp]

[HKEY_CLASSES_ROOT/Folder/shell/ren bmp/Command]
@="Cmd.exe /c cd /"%1/" & ren *.pbm *.bmp"

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值