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

Batch file 如何从.txt文件中读取一行并将其与CMD中的用户输入进行比较?,batch-file,cmd,Batch File,Cmd,我是CMD的新手,但我一直在尝试和搜索它,我已经走到了死胡同。 所以我的问题是: 批处理文件可以从.txt文件中读取某一行,然后 将其与一些用户输入进行比较?本质上,我想要创建的是一个standart.txt文件,它将保存一些信息,一个批处理文件,一旦启动,它将询问用户一些信息,然后将其与一个特定的.txt文件行进行比较,以查看用户输入是否与.txt中的信息匹配。到目前为止,这种比较是我无法编码的。有什么帮助吗? 谢谢 您可以使用SET将文本文件读入变量。 例如,在桌面上放置一个包含单词pass

我是CMD的新手,但我一直在尝试和搜索它,我已经走到了死胡同。 所以我的问题是: 批处理文件可以从.txt文件中读取某一行,然后 将其与一些用户输入进行比较?本质上,我想要创建的是一个standart.txt文件,它将保存一些信息,一个批处理文件,一旦启动,它将询问用户一些信息,然后将其与一个特定的.txt文件行进行比较,以查看用户输入是否与.txt中的信息匹配。到目前为止,这种比较是我无法编码的。有什么帮助吗?
谢谢

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

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

IF "%1" == "%txt%" (
    ECHO "%1 matched!"
) ELSE (
    ECHO "%1 did not match"
)
如果您运行: test.bat errowpassword输出为:errowpassword不匹配

但是,如果运行:test.bat password,则输出与密码匹配


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

您可以通过在桌面上循环使用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,在第四个循环data4输出后,你会看到它。

你有没有试过用谷歌搜索它?一步一步地搜索。。。