1

我正在处理从文件“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!%%**
)

对于没有'&'的行,字符串替换效果很好。只有当行包含特殊字符时它才不起作用。

请帮助我理解这里的问题。

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

4

1 回答 1

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
于 2013-07-14T17:39:22.440 回答