bat for循环语法错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat for循环语法错误相关的知识,希望对你有一定的参考价值。

如下代码,运行直接退出了,求大神指点哪错了,谢谢!
for /f "eol=# tokens=1,2 delims= " %%i in (custom.txt) do (

::echo set custom=%%i
::echo set whole_num=%%j
::echo set whole_version=%%j_%folder%_D%subver%_%SVNREV%
MOVE .\Source\Custom\%%i\__version_operation_ctrl.h .\Source\Custom\%%i\__version_operation_ctrl.bak
..\..\Tools\ApplySvnRevision2.exe %SVNREV% .\Source\Custom\%%i\__version_operation_ctrl.bak .\Source\Custom\%%i\__version_operation_ctrl.h gbk
call ..\..\Tools\replace.bat .\Source\Custom\%%i\__version_operation_ctrl.h $(VERSION) "%%j_%folder%_D%subver%_%SVNREV%"

UV4 -b .\Board\EVB\RCU\RCU.uvprojx -t %%i -o ".\log.txt"

echo f | xcopy .\Source\Custom\%%i\bin\RCU_APP.bin ..\Release\%%i\%SVNREV%\"%%j_%folder%_D%subver%_%SVNREV%"\RCU_APP_debug.bin
echo f | xcopy .\Source\Custom\%%i\bin\RCU_APP.trace ..\Release\%%i\%SVNREV%\"%%j_%folder%_D%subver%_%SVNREV%"\RCU_APP_debug.trace

..\..\Tools\MD5\md5.exe ..\Release\%%i\%SVNREV%\"%%j_%folder%_D%subver%_%SVNREV%"\RCU_APP_debug.bin

DEL ..\Release\%%i\%SVNREV%\"%%j_%folder%_D%subver%_%SVNREV%"\RCU_APP_debug.bin

::echo set whole_version=%%j_%folder%_R%subver%_%SVNREV%
..\..\Tools\ApplySvnRevision2.exe %SVNREV% .\Source\Custom\%%i\__version_operation_ctrl.bak .\Source\Custom\%%i\__version_operation_ctrl.h gbk
call ..\..\Tools\replace.bat .\Source\Custom\%%i\__version_operation_ctrl.h $(VERSION) "%%j_%folder%_R%subver%_%SVNREV%"

move .\Source\Application\RCU\debug.h .\Source\Application\RCU\debug.bak
copy .\Source\debug.h .\Source\Application\RCU\debug.h

UV4 -b .\Board\EVB\RCU\RCU.uvprojx -t %%i -o ".\log.txt"

::echo f | xcopy .\Source\Custom\%%i\bin\RCU_APP.bin ..\Release\%%i\%SVNREV%\%%j_%folder%_R%subver%_%SVNREV%\RCU_APP.bin

..\..\Tools\MD5\md5.exe ..\Release\%%i\%SVNREV%\"%%j_%folder%_R%subver%_%SVNREV%"\RCU_APP.bin

DEL ..\Release\%%i\%SVNREV%\"%%j_%folder%_R%subver%_%SVNREV%"\RCU_APP.bin

echo f | xcopy ..\Patch_1.1.0.15575_1-008351828789692b1574aa98e1e21249.bin ..\Release\%%i\%SVNREV%\

move .\Source\Application\RCU\debug.h .\Source\Application\RCU\debug.bak2
move .\Source\Application\RCU\debug.bak .\Source\Application\RCU\debug.h

MOVE .\Source\Custom\%%i\__version_operation_ctrl.h .\Source\Custom\%%i\__version_operation_ctrl.bak2
MOVE .\Source\Custom\%%i\__version_operation_ctrl.bak .\Source\Custom\%%i\__version_operation_ctrl.h

)

echo %SVNREV%

(VERSION)

被括号字符干扰了。

参考技术A 在for中,注释部分不能用:: 只能用rem追问

感谢,我把:: 改成 rem后还是直接退出呢!

追答

重新仔细看了一下,原来里面还有(VERSION)也有问题。

请用双引号把这些括起来,否则for以为到这就结束了。

参考技术B 打开一个cmd窗口
cd/d bat所在文件夹
输入bat文件名回车运行
这时你能看到出错信息了,如果自己不能排错就把错误信息发上来,大家一起研究。本回答被提问者和网友采纳

以上是关于bat for循环语法错误的主要内容,如果未能解决你的问题,请参考以下文章

linux shell脚本中for循环的语法

shell中的for循环出现语法错误(syntax error: bad for loop variable)

python for循环后面一直提示冒号的语法错误

Python循环常见的语法错误有哪些?

为啥 for 循环中的这种无效语法? [复制]

(转)bat命令语法学习