批次:转义
BATCH: Escaping
我正在尝试制作简单的批处理文件,它将所有带有 width="10
字符串的行从 .htm 文件复制到 .txt 但我在字符串
中使用双引号 "
符号
我的代码:
for /F "tokens=*" %%g in ('FINDSTR /C:"width=\"10" "htmfile.htm"') do (echo %%g >> test.txt)
'FINDSTR /C:"width='
这仍然有效,但是当我添加 "
时,它不再有效了。我添加了转义 \"
并且还尝试了 ^"
但它仍然无法正常工作。
我很乐意提供任何帮助。
您需要首先确保 cmd.exe
解析器将正确的匹配字符串发送到 FindStr
, 即/C:"width=\""
。为此,我建议使用标准转义字符转义结束双引号,插入符号 ^
.
我真的不明白 For
循环的目的,(除非你只是想删除任何前导空格):
@Echo Off
FindStr /C:"width=\"10^" "htmfile.htm" 2>Nul >"test.txt"
Pause
因为 For
括号的内容是 运行 通过另一个 cmd.exe
实例你需要用另外两个插入符来转义插入符转义字符:
@Echo Off
For /F "Tokens=*" %%A In ('FindStr /C:"width=\"10^^^" "htmfile.htm" 2^>Nul'
) Do (Echo %%A)>>"test.txt"
Pause
我正在尝试制作简单的批处理文件,它将所有带有 width="10
字符串的行从 .htm 文件复制到 .txt 但我在字符串
"
符号
我的代码:
for /F "tokens=*" %%g in ('FINDSTR /C:"width=\"10" "htmfile.htm"') do (echo %%g >> test.txt)
'FINDSTR /C:"width='
这仍然有效,但是当我添加 "
时,它不再有效了。我添加了转义 \"
并且还尝试了 ^"
但它仍然无法正常工作。
我很乐意提供任何帮助。
您需要首先确保 cmd.exe
解析器将正确的匹配字符串发送到 FindStr
, 即/C:"width=\""
。为此,我建议使用标准转义字符转义结束双引号,插入符号 ^
.
我真的不明白 For
循环的目的,(除非你只是想删除任何前导空格):
@Echo Off
FindStr /C:"width=\"10^" "htmfile.htm" 2>Nul >"test.txt"
Pause
因为 For
括号的内容是 运行 通过另一个 cmd.exe
实例你需要用另外两个插入符来转义插入符转义字符:
@Echo Off
For /F "Tokens=*" %%A In ('FindStr /C:"width=\"10^^^" "htmfile.htm" 2^>Nul'
) Do (Echo %%A)>>"test.txt"
Pause