2013-05-21 50 views
0

我需要在一个文本文件中读取一些东西,去如下:如何从文本文件中查找和读取行?批量


尼古拉斯PASSWORD1

迈克尔密码2

MYNAME password3


我想要的批处理文件检测变量%fname%(Nicholas)是否存在。 在那之后,我需要找出是否%PWORD%(密码1)是经过%FNAME%

回答

1

可以使用for命令是这样的:在一个批处理

set AUTH_OK=0 

for /f "tokens=1-2" %%a in (passwords.txt) do (
    if "%%a"=="%fname%" (
     if "%%b"=="%pword%" (
      set AUTH_OK=1 
     ) 
    ) 
) 

if %AUTH_OK%==1 (
    echo Access granted. 
) else (
    echo Access denied. 
) 

这是假设你这样做文件。如果从命令行执行该操作,则必须在这些循环变量上使用单个%而不是双精度(%%)。

我应该提到这是区分大小写的。

+0

这可能是两个单独的代码?我的意思是(我应该更具体)它测试%fname%比另一次,%pword%。除此之外,您的答案非常有用,我正在使用批处理,而我对FOR命令一无所知。 – user1941370

+0

是的,只是使用这些个人if语句中的一个或另一个。你会看到我嵌套它们,因为我希望两个条件都是真的(批处理文件中没有'AND'运算符)。要了解有关'for'命令的更多信息,请在命令行中键入'for /?'。 – paddy