写bat脚本遇到的尴尬事情

本文介绍了一位开发者如何使用Perforce版本控制系统和BAT批处理脚本来定位导致程序崩溃的具体更改。通过折半查找的方法,在众多变更集(changelists)中快速定位问题,并详细记录了在编写过程中遇到的路径指定、目录复制以及命令调用等问题及其解决办法。

最近写一个bat脚本:查找哪一次更改把程序给搞崩溃(Crash)了。本人用的是perforce版本管理,找这个crash在debugger下实在难找,就只能这样了。

面对一堆changelists,采用折半查找吧。首先我要用到时xcopy这个命令:把编译好的exe目录文件拷贝到相应的目录下面: 比如编译好的exe目录是F:\\Build\\exe目录,

而我要拷贝到的目录是:E:\\changelist1目录。本来以为直接写:xcopy F:\\Build\\exe\\  E:\\changelist1\\就行了,后来居然出现:invalid path的提示(:,后来检查我的路径什么的,都对阿,看来神奇了,最后就才发现最后目录不要"\\"符号,我晕,终于拷贝了,但发现,目录里下的子目录没有拷贝,google下,才知道需要加一些指定符,最后才成功:xcopy F:\\Build\\exe E:\\changelist1 /D /S /Y  。接下来要实现sync to changelist and build,perforce有非常好的接口(commands), 直接调用就好了。

大家对bat中的pushd %1 和popd %1, 估计不是太熟悉,哥们也是找了许久,才知道。%1 就是你的命令行上的第一个参数,比如我的命令行的第一个参数是F:\Build\exe 。而pushd %1 就是告诉电脑进入第一个参数的目录里,相当于cd F:\Build\exe 。然后在此目录下再做一些其他你想要的操作。

 

终于把bat写出来了,名曰:sync_to_changelist_build.bat ,稍微试了一下,可以用了。就在我高兴的时候,巨大的尴尬从天而降:

本人向跑完bat后,就再执行copy操作:

sync_to_changelist_build.bat F:\\Build\\exe 15688

xcopy F:\\Build\\exe E:\\changelist1 /D /S /Y

哥们写完,就让电脑自己跑去吧,就等明天看结果。

这不明天看的时候,根本就没有xcopy的动作,太难受了。

后来查资料,问牛人,才知道:我丢了一个关键字call,call sync_to_changelist_build.bat F:\\Build\\exe 15688

改后是:

call sync_to_changelist_build.bat F:\\Build\\exe 15688

xcopy F:\\Build\\exe E:\\changelist1 /D /S /Y

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值