string - 如何在 Windows 批处理文件中使用 FOR 获取文本文件中的路径变量?

标签 string windows batch-file

我尝试检索由标签标识的文本文件中的路径。

我的文本文件中有这样一行:

"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/

相关文章:

Windows 批处理文件 - 在变量上查找字符串,查找包含百分比字符和单引号的字符串

windows - 一次在多个文件夹中运行一个批处理文件

string - 在 Go 中将 bigint 转换为字符串

c - scanf 如何处理字符串和整数? C

xml - 寻找一个通过 X-Path 读取和查询大型 XML 文件的工具

ruby - Dashing 在启动时没有提示,我如何才能找到更多信息?

css - 半自动 CSS 代码传输到现有的 .CSS 文件(例如,使用批处理文件)

c - 从txt文件中读取C中的字符串

java - 如何在每个第 n 个单词处拆分字符串数组?

python - Django 1.9a1 __init__.py 在 eclipse/PyDev 中可见,即使它应该被删除 (Windows)