我正在尝试获取文件中路径的精确匹配(“\Users\sachin.a.goyal\Desktop\test\”):
Biggest.txt:
1 number:
name = DMS 3.0 R2 - Deployment Workbook_APAC v4_WMT
size = 15634835
path = \Users\sachin.a.goyal\Desktop\test\
2 number:
name = Scenarios
size = 254
path = \Users\sachin.a.goyal\Desktop\test\New folder\
我正在使用这个命令:
findstr /x /c:"\Users\sachin.a.goyal\Desktop\test\" Biggest.txt
但是执行此命令后,DOS 窗口卡住了。它没有给出任何错误,但看起来它需要其他参数。请帮忙。
答案1
/x 不起作用,因为整行需要与搜索字符串匹配,在本例中,它以 为前缀path =
。此外,\
符号需要转义,这样它们就不会被解释为命令。最后,正则表达式模式将有助于捕获正确的行,因为它以空格结尾,然后是行尾 - 行尾可以表示为$
:
H:\>findstr /r /c:"\\Users\\sachin.a.goyal\\Desktop\\test\\ *$" biggest.txt
path = \Users\sachin.a.goyal\Desktop\test\
您的搜索挂起的原因之一可能是\
匹配命令。
如果您使用变量来保存要搜索的路径,则仍需要转义反斜杠。您可以使用替换功能执行此操作:
set path="c:\Users\sachin.a.goyal\Desktop\test\"
set path=%path:\=\\%
echo path
c:\\Users\\sachin.a.goyal\\Desktop\\test\\
第二行表示,将所有反斜杠替换为双反斜杠。不幸的是,我现在没有 Windows 机器可以测试,但您可能仍需要转义反斜杠:
set path=%path:\\=\\\\%