Board logo

标题: [文本处理] [已解决]批处理在for中用call echo特殊字符时出错 [打印本页]

作者: zjw767676    时间: 2010-4-16 17:53     标题: [已解决]批处理在for中用call echo特殊字符时出错

1.txt
  1. <nihao>
  2. <!--
  3. _spr
  4.        <>
  5.        <>
复制代码
a.bat【运行正常】
  1. @echo off
  2. for /f "delims=#" %%i in (1.txt) do echo %%i
  3. pause
复制代码
b.bat 【出错】
  1. @echo off
  2. for /f "delims=#" %%i in (1.txt) do (
  3.    set "var=%%i"
  4.      call echo %%var%%
  5. )
  6. pause
复制代码
哪位指教下!!
作者: hanyeguxing    时间: 2010-4-16 18:05

为什么非得用call呢?
  1. @echo off
  2. for /f "delims=#" %%i in (a.txt) do (set "var=%%i"
  3. Setlocal enabledelayedexpansion
  4. echo.!var!
  5. endlocal)
  6. pause
复制代码

作者: zjw767676    时间: 2010-4-16 18:25

感谢感谢!!
我想替换变量中的值,要是一开始就开变量延迟的话文本中的!号不好处理!
所以就想用CALL!
不过为什么不能用呢?没特殊字符时是可以的啊
作者: hanyeguxing    时间: 2010-4-16 18:35

如果是文本,这个时候最好用vbs或第三方命令sed、fr等。
作者: GNU    时间: 2010-4-16 19:27     标题: 回复 3楼 的帖子

在合适的地方开启,在合适的地方关闭,参考:
http://bbs.bathome.net/thread-4580-1-1.html




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