第一个 bat 文件
要写一个批处理命令 转换场景数据
包括从文件里读入
每一行信息是一个要转换的场景名字
可以拼出路径
到指定路径 执行命令
http://blog.csdn.net/mfx1986/article/details/5606228
FOR /F %%i IN xx.txt DO xxxx
截取字符串
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789
echo 原字符串(第二行为各字符的序号):
echo %ifo%
echo 1234567890123 45678901234567890123456
echo 截取前5个字符:
echo %ifo:~0,5%
echo 截取最后5个字符:
echo %ifo:~-5%
echo 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
echo 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
echo 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
pause
变量延迟
setlocal enabledelayedexpansion
现在遇到的问题是在for loop 里set var 之后echo都是空的
显示echo off ....echo on
http://blog.csdn.net/bingjie1217/article/details/12947327
http://www.cnblogs.com/dfg727/archive/2013/04/24/3040965.html
http://stackoverflow.com/questions/13805187/how-to-set-a-variable-inside-a-loop-for-f
....我要把自己埋吐血了
各种尝试怎么都没法给 var赋值
明明变量延迟已经开了,最后我连函数都尝试了
终于明白,是我最近养成的 等号前后空格的好习惯。。。
我可悲的coding style 怪不得var一直都是空!!!
for /F "tokens=*" %%a in ('type %FileName%') do call :Foo %%a
goto End
:Foo
set z=%1
echo %z%
echo %1
goto :eof
:End
是那个等号前后都不能有空格的意思。。。。花了我一个半小时。。。
==================================================================
终于明白,是我最近养成的 等号前后空格的好习惯。。。
如果不算之前调试phyreengine那次,这是我第一个bat
好开心哈哈,我要把它抄过来,外面好热,今天有37度,我在加班,快十点了,因为外面太热了并且我有一个包子。
1 @echo off 2 setlocal EnableDelayedExpansion 3 set rootMap=... 4 rem there is a space between do and ( 5 for /f %%i in (maplist.txt) do ( 6 rem no space before and after = with set 7 set scene=%%i 8 set dir=!scene:~0,-2! 9 set rootDir=!rootMap!\!dir!\!scene! 10 11 c: 12 cd !rootDir! 13 call !rootMap!\...exe -para...
@echo off
setlocal EnableDelayedExpansion
set rootMap=...
rem there is a space between do and (
for /f %%i in (maplist.txt) do (
rem no space before and after = with set
set scene=%%i
set dir=!scene:~0,-2!
set rootDir=!rootMap!\!dir!\!scene!
c:
cd !rootDir!
call !rootMap!\...exe -para...
========================================
因为要buildmachine来编,这个bat有了2。0版本
其中我遇到个问题 就是 cd ..
一 cd 就闪退
原因是 不要双击bat而是
>cd ......
......>xxx.bat
2.0版本是这样的加了几个
cd..
call ..\..\xxx.exe