我正在处理一些batch file。 我需要从某些文本文件中读取名称。 让我解释一下
我有一个文件File.txt
,其中有条目像FirstName=John
。 现在我的batch file应该从文件中读取文本John
,我也应该能够将John
存储在某个variables中。
但有了下面的代码,如果我使用delims==
,我可以将FirstName
文本存储在某个variables中,而不是John
。
for /F "delims==" %%I in (File.txt) do set Title=%%I echo %Title%
有什么办法可以从我的File.txt
获取John
,并将其存储在我的for
循环中?
@echo off setlocal for /F "tokens=1,2 delims==" %%a in (File.txt) do set Title=%%b echo %Title%
是否将名字的值提取到Title
,但只包含Firstname
的最后一行!
@echo off setlocal for /F "tokens=1,2 delims==" %%a in (File.txt) do ( set t=%t% %%b ) echo %t:Firstname=%
连接所有找到的名字。
你的问题是John
是找到的第二个标记, Firstname
是找到的第一个标记。 你有很多选择。
tokens=2
来跳过第一个标记,并只将第二个标记获取到变量%%I
。 没有其他变量生成。 %%J
(这是自动生成的)。 %%K
将包含第三个令牌等等。 tokens=2*
来跳过第一个标记,并将所有后面的标记写入变量I
, J
, K
等。