替换字符串不适用于具有'&'的行字符

时间:2013-07-14 17:27:10

标签: batch-file batch-processing

我正在处理从文件“A.txt”读取的字符串/行并将其写入新文件“B.txt”

如果该行包含'&',则在文件A中字符串替换不起作用。

**for /f "tokens=*" %%a in ('type "%%F"') do (
set str=%%a
set filename=abc
set findStr=!filename!.
echo !findStr!
set replaceStr=folder1\!filename!\!filename!.
echo !replaceStr!
call set str=%%str:!findStr!=!replaceStr!%%**
)

这里有没有'&'的行字符串替换工作完美。只有当行包含特殊字符时,它才会起作用。

请帮助我理解这个问题。

请注意,这不是完整的脚本。

1 个答案:

答案 0 :(得分:1)

尝试此操作(假设您已启用延迟扩展):

(for /f "delims=" %%a in (C:\path\to\A.txt) do (
  set "str=%%a"
  set "filename=abc"
  set "srch=!filename!."
  >&3 echo !srch!
  set "repl=folder1\!filename!\!filename!."
  >&3 echo !repl!
  call set "str=%%str:!srch!=!repl!%%"
  echo !str!
)) > C:\path\to\B.txt