我尝试检索由标签标识的文本文件中的路径。
我的文本文件中有这样一行:
"mypath":"C:\myfolder"
我需要检索mypath
标签对应的路径。
我试过这个:
for /f tokens^=2^,3^ delims^=^"^:^" %%a in ('type %mytextfile%^|find """mypath"""') do (
echo %%a
echo %%b
)
但是不行,结果是:
mypath
C
所以我的问题可能来自分隔符和我想要获取的字符串中使用的冒号字符。
最佳答案
两点:首先,只需对 for
选项使用引号,而不是转义所有内容。其次,您可以在 tokens 选项后添加 *
以暗示不再进行标记化,其余部分应作为单个标记返回:
for /f "tokens=1* delims=:" %%A in ('findstr /b /c:"""mypath""" %mytextfile%') do (
echo %%~A
echo %%~B
)
还有一些事情:
- 当您传送到的命令可以很好地读取文件时,就不需要
type
了。 :-) findstr/b
匹配行开头的搜索字符串,作为额外的检查以确保您确实找到了正确的行。- 用于打印变量的
~
只是消除了文本周围的引号,因此您不必再处理它们。
关于string - 如何在 Windows 批处理文件中使用 FOR 获取文本文件中的路径变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51838096/