Findstr含引号字符串结果无法重定向至文件的问题求助
解决findstr查找含引号字符串的重定向问题
问题描述
需要在XML文件中查找目标字符串:flashwareFileName="FL_992920900X_0143__V001_S.pdx",使用findstr命令时遇到异常:
- 执行
findstr /s "=\"FL_" *.xml > temp.txt:无法将结果重定向到文件 - 执行
findstr /s "=FL_" *.xml > temp.txt:重定向功能正常
已尝试用反斜杠转义引号但无效,需实现含引号字符串的查找结果重定向。
解决方案
在Windows命令提示符中,findstr的引号转义逻辑并非使用反斜杠,而是用两个连续双引号代替单个双引号。针对你的需求,可使用以下命令:
匹配完整目标字符串
findstr /s "flashwareFileName=""FL_992920900X_0143__V001_S.pdx""" *.xml > temp.txt
匹配目标字符串前缀(简化写法)
如果只需匹配flashwareFileName="FL_开头的内容,可使用:
findstr /s "flashwareFileName=""FL_" *.xml > temp.txt
原理说明
Windows命令解析器中,双引号用于界定命令中的字符串参数,若要在参数内部包含双引号,必须用两个连续双引号进行转义。此前用反斜杠转义的方式不被cmd识别,会导致搜索字符串解析错误,进而干扰重定向操作;改用双引号转义后,命令解析器能正确识别搜索内容,重定向即可正常执行。
内容的提问来源于stack exchange,提问作者Steve1506
相关产品推荐
相关产品推荐

