如何从.txt文件中读取一行并将其与CMD中的用户输入进行比较?

时间:2017-03-06 22:08:34

标签: batch-file cmd

我对CMD很新,但我一直在尝试和搜索很多关于它的事情,我已经走到了尽头。 所以我的问题是: 批处理文件是否可以从.txt文件中读取某一行,然后 将它与一些用户输入进行比较?从本质上讲,我想要创建的是拥有一个标准的.txt文件(它将保存一些信息)和一个批处理文件,一旦启动,它将向用户询问一些信息,然后将其与特定信息进行比较。 txt文件行,以查看用户输入是否与.txt中的信息匹配。到目前为止,比较是我无法编码的。有帮助吗? 谢谢。 ;)

2 个答案:

答案 0 :(得分:1)

您可以通过循环浏览桌面上的“test.txt”文件来执行此操作,该文件可能如下所示:

data1
data2
data3
data4
data5
data6
data7
data8
data9

然后“test.bat”文件:

set /p @var= Add your input here: 
cls
ECHO Script initiated!
ECHO %@var%

cd "C:\Users\%USERNAME%\desktop"

:: loop over file line by line
for /f "tokens=*" %%a in (test.txt) do (
:: test if data exist in file
IF %@var%==%%a (
     echo data exists in txt file
    )
)
pause

尝试键入输入:“data4”,您将看到第四个循环数据4输出后。

答案 1 :(得分:0)

您可以使用SET将文本文件读入变量。 例如,将文件data.txt放在包含单词password的桌面上。然后将其放入批处理文件中:

@echo off
SET /p txt=<%userprofile%\Desktop\data.txt

IF "%1" == "%txt%" (
    ECHO "%1 matched!"
) ELSE (
    ECHO "%1 did not match"
)

如果您运行: test.bat wrongpassword输出为:"wrongpassword did not match"

但是,如果您运行:test.bat password,则输出为"password matched!"

备注:存储和检查这样的密码是一个非常糟糕的主意。