Board logo

标题: [文本处理] [已解决]原样输出含特殊字符的批处理中这个字符串替换是什么意思 [打印本页]

作者: couth    时间: 2009-8-19 12:15     标题: [已解决]原样输出含特殊字符的批处理中这个字符串替换是什么意思

这是原代码:
最大限度原样输出含特殊字符的指定行内容(转自中国DOS联盟)
@echo off
cd.>output.txt
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set "var=%%i"
setlocal enabledelayedexpansion
set var=!var:*:=!
(echo.!var!)>>output.txt
endlocal
)
start output.txt

看了之后感觉不懂。关建是set var=!var:*:=!这句感觉莫明其妙,具体运行原理是什么样的?请大大指点。

[ 本帖最后由 couth 于 2009-8-19 15:40 编辑 ]
作者: zqz0012005    时间: 2009-8-19 12:34

请学会看帮助:
set /?
...
环境变量替换已如下增强:

%PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
...

论坛更是有详细教程。
作者: couth    时间: 2009-8-19 13:15

谢谢版主了。明白了。




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