如何从.txt文件读取一行并将其与CMD中的用户输入进行比较?
问题描述:
我对CMD相当陌生,但我一直在尝试和搜索很多关于它的知识,而且我已经走到了一条死路。 所以我的问题是这样的: 批处理文件可能从.txt文件中读取某一行,然后 将其与某些用户输入进行比较?实质上,我想要创建的是有一个标准的.txt文件(它将保存一些信息)和一个批处理文件,一旦启动,它将询问用户一些信息,然后将其与特定文件进行比较。 txt文件行来查看用户输入是否匹配.txt中的信息。到目前为止,比较是我无法编码的。任何帮助? 谢谢。 ;)如何从.txt文件读取一行并将其与CMD中的用户输入进行比较?
答
您可以使用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 wrongpassword
输出为:"wrongpassword did not match"
但是,如果你运行:test.bat password
输出为"password matched!"
侧面说明:存储和检查这样的密码将是一个非常糟糕的主意。
答
你可以通过你的桌面,可能看起来像你的 “的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输出后。
你甚至试过Google吗?一步一步地搜索... http://stackoverflow.com/questions/14834625/reading-text-file-in-batch-script ... http://stackoverflow.com/questions/1223721/in-windows -cmd-怎么办-I-提示换用户输入和使用的,在对结果的,另一个-COM –