2013-05-21 47 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