如何在存储在文件中的=符号后读取任何文本

时间:2008-12-16 08:17:06

标签: windows batch-file cmd

我正在处理一些批处理文件。 我需要从一些文本文件中读取名称。让我解释一下

我有一个文件File.txt,其条目如FirstName=John。 现在我的批处理文件应该从文件中读取文本John,我应该能够将John存储在某个变量中。

但是使用以下代码,如果我使用delims==,我可以将FirstName文本存储在某个变量中,但不会存储John

for /F "delims==" %%I in (File.txt) do set Title=%%I
echo %Title%

有什么方法可以从我的John获取File.txt并将其存储在我的for循环中吗?

2 个答案:

答案 0 :(得分:2)

@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=%

连接所有找到的名字。

答案 1 :(得分:0)

问题在于John是找到的第二个令牌,Firstname是找到的第一个令牌。你有很多选择。

  • 您可以使用tokens=2跳过第一个令牌,只将第二个令牌转换为变量%%I。没有生成其他变量。
  • 您可以使用包含第二个标记的变量%%J(自动生成)。 %%K将包含第三个令牌等等。
  • 您可以使用tokens=2*跳过第一个令牌,并将所有后续令牌转换为变量IJK等。