Board logo

标题: [文本处理] [已解决]批处理for语句第二个括号里面的命令行如果带有()要怎么处理? [打印本页]

作者: fcymk2    时间: 2011-8-31 14:06     标题: [已解决]批处理for语句第二个括号里面的命令行如果带有()要怎么处理?

本帖最后由 fcymk2 于 2012-11-7 14:45 编辑

for %%i in (XXX) do(...)

现在do 里面有好几条命令, 命令都是带()的, 如果do也带()的话, 就冲突了,命令无法执行, 如果do后面不带()的话, 只能执行一条语句.

要怎么处理才能让 do后面的() 和命令里面的()不冲突?
作者: 601997526    时间: 2011-8-31 14:43

  1. for /l %%i in (1 1 10) do (if %%i==5 (echo aaa) else (echo b))
复制代码
你看看这个for里面不就有括号吗,楼主还是发个你写的代码来看看问题到底是出在哪了
作者: raymai97    时间: 2011-8-31 14:44

在(和)前加上一个^:
  1. for  %%i in (a b c) do (
  2. echo ^(LKL^)
  3. echo ^(OOO^)
  4. echo ^(%%i^)
  5. pause>nul
  6. )
复制代码

作者: sforiz    时间: 2011-8-31 23:38

注意换行与成对出现就不会出问题了
作者: fcymk2    时间: 2012-11-7 14:15

回复 3# raymai97

感谢, 加上^后就正常了.....原先在这发完帖子后都忘了@_@  后来一直是在语句后面 加 & 把2条语句连起来用的...

附上原先 不用^ 的时候出错的语句for %%i in (%file_c%) do (%C51BIN%\C51.EXE %srcdir%\%%i.c %option1% PRINT(%lstdir%\%%i.lst) OBJECT(%lstdir%\%%i.obj))




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2