Board logo

标题: [文件操作] 批处理关于文本替换的问题 [打印本页]

作者: zcy85611    时间: 2008-12-22 16:18     标题: 批处理关于文本替换的问题

setlocal ENABLEDELAYEDEXPANSION
COLOR 3F
ECHO.
ECHO ######################################
ECHO             替换字符
ECHO ######################################
ECHO.
set /P STR1=查找内容:
SET /P STR2=替换为:
for /f "tokens=* delims=" %%a in (test.txt) do (
set n=%%a
set n=!n:%STR1%=%STR2%!
echo !n!>>test.txt
)
pause

这段代码是替换字符的,里面我有一处看不懂,请大家指点一下

set n=!n:%STR1%=%STR2%!
echo !n!>>%PH%

我想问下,代码中一对!!感叹号的作用是什么?应该怎么使用,麻烦解答一下,谢谢

[ 本帖最后由 zcy85611 于 2008-12-25 13:30 编辑 ]
作者: wxcute    时间: 2008-12-22 17:05

以上代码已更改,%path% 换了%str%!

[ 本帖最后由 wxcute 于 2008-12-25 15:02 编辑 ]
作者: Batcher    时间: 2008-12-22 17:22

建议不要使用和系统变量重名的变量,请把%PATH%改成其它的名字吧。
作者: zcy85611    时间: 2008-12-23 11:32

....我只是想问一下," !n! " 中 这对感叹号的作用是什么....
作者: Batcher    时间: 2008-12-23 13:02     标题: 回复 4楼 的帖子

你修改PATH以后自然有人告诉你
作者: zcy85611    时间: 2008-12-25 13:30

修改完毕~~麻烦解答~
作者: Batcher    时间: 2008-12-25 13:57

代码中一对!!感叹号的作用是什么?

变量延迟详解
http://www.cn-dos.net/forum/viewthread.php?tid=28273

什么情况下该使用变量延迟
http://www.cn-dos.net/forum/viewthread.php?tid=20733

一个变量嵌套变量的问题
http://www.cn-dos.net/forum/viewthread.php?tid=41143
作者: zcy85611    时间: 2008-12-26 11:31

感谢版主的教程~弄明白这个问题了
作者: zcy85611    时间: 2008-12-26 12:27

刚才自己试了一下代码,还有一个问题想请教一下。

比如a.txt的内容为

1234456
12345

我将其中的1234456这行文字替换成 空格 ,然后保存到 b.txt里,但是在b.txt里显示的不是空格,而是 ECHO 处于关闭状态。

这个问题应该如何解决呢?
作者: Batcher    时间: 2008-12-26 13:11     标题: 回复 9楼 的帖子


echo !n!>>test.txt
改成
echo.!n!>>test.txt
试试
作者: zcy85611    时间: 2008-12-27 09:33

问题解决了~非常感谢版主!




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