在包含特定字符串的行上的引号中回显信息?

时间:2014-02-23 23:07:09

标签: batch-file

如果我的文本文件是以下格式列出的内容:

Thing1   "Description of Thing1"
Thing2   "Description of Thing2"
etc.

如何使用批处理文件仅回显任何给定事物的引号中包含的信息?

编辑:根据答案,我已经尝试了以下内容:

for /f "tokens=1*" %%a in (G:\Games\Console\Emulators\MAME\listfull.txt) do if "%%a"=="%%~nf" set gamename=%%~b
    echo !gamename!
    if !count!==1 echo|set /P=", "!gamename!": [#name: "%%~nf", #path: "%%~dpf"]" >> "G:\Games\Console\Utilities\Lists\MAME_%%d.txt"

它几乎完全有效;如果描述中包含一个&,符号,那么" echo!gamename!"当下一行没有并且吐出"&'不是命令。 (我必须使用echo | set来生成没有回车符的行。)

Edit2:我发现的唯一解决方案是在每个&之前添加^。在我阅读描述的任何文本文件中。不是理想的解决方法,但是......

2 个答案:

答案 0 :(得分:1)

set "search=Thing2"
for /f "tokens=1*" %%a in (textfile.txt) do if "%%a"=="%search%" echo %%~b

如果所有这些脚本都输出了任何给定thing的信息,那么您可以将搜索更改为%~1,并在调用脚本时输入该值。

for /f "tokens=1*" %%a in (textfile.txt) do if "%%a"=="%~1" echo %%~b

答案 1 :(得分:0)

for /f "tokens=1*" %%a in (file.txt) do echo(%%~b