我尝试在由标签标识的文本文件中检索路径。
我的文本文件中有这样一行:
"mypath":"C:\myfolder"
我需要检索与mypath
标签相对应的路径。
我尝试过:
for /f tokens^=2^,3^ delims^=^"^:^" %%a in ('type %mytextfile%^|find """mypath"""') do (
echo %%a
echo %%b
)
但是它不起作用,结果是:
mypath
C
所以我的问题可能来自定界符和我要获取的字符串中使用的冒号。
答案 0 :(得分:2)
两点:首先,仅对for
选项使用引号,而不要转义所有内容。其次,您可以在令牌选项之后添加*
,以暗示不再进行令牌化,其余的应作为单个令牌返回:
for /f "tokens=1* delims=:" %%A in ('findstr /b /c:"""mypath""" %mytextfile%') do (
echo %%~A
echo %%~B
)
还有几件事:
type
。 :-)findstr /b
与该行开头的搜索字符串匹配,这是对您是否确实找到正确行的补充检查。~
仅消除了文本周围的引号,因此您不必再处理它们了。