第一个 bat 文件

时间:2023-11-10 17:01:02

要写一个批处理命令 转换场景数据

包括从文件里读入

每一行信息是一个要转换的场景名字

可以拼出路径

到指定路径 执行命令

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://*.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度,我在加班,快十点了,因为外面太热了并且我有一个包子。
 @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...
  @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