Batch file 批处理:转义
我试图创建一个简单的批处理文件,将所有带有Batch file 批处理:转义,batch-file,for-loop,escaping,findstr,Batch File,For Loop,Escaping,Findstr,我试图创建一个简单的批处理文件,将所有带有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解析器将正确的匹
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关闭
FindStr/C:“宽度=\”10^“htmfile.htm”2>Nul>“test.txt”
暂停
由于括号的内容是通过另一个cmd.exe
实例运行的,因此您需要使用另外两个插入符号转义插入符号转义字符:
@Echo关闭
对于('FindStr/C:'width=\'10^^^^“htmfile.htm”2^>Nul'中的/F“Tokens=*”%%A
)Do(Echo%%A)>>“test.txt”
暂停
Ha,你比我快了几秒钟,我刚才也在打字。。。干得好!甚至可以在不使用/C
选项的情况下执行此操作<代码>搜索宽度=\“10 blah.htm