我正在编写一个批处理文件程序,该程序从用户那里获取用户名和密码,并通过将它们与两个文件username.dat
和password.dat
进行比较来检查它们。
用户名存储在%username%
中,密码存储在%password%
中。我想知道的是,如何根据文件username.dat和password.dat检查这些变量?
我尝试过使用它:
echo %username% >U.dat
echo %Password% >P.dat
COMP U.dat Username.dat
但值得检查的是什么?我的意思是在C或C ++中我们可以检查返回值,但是这个COMP
呢?
答案 0 :(得分:2)
在文件中存储用户名和密码对我来说似乎不太好。但假设你打算以任何方式这样做......
在进行比较之前,无需将变量回显到临时文件。有多种方法可以更直接地进行比较。这是一种方法。我正在使用延迟扩展,以便在密码(或用户名)中支持&
|
等特殊字符。
setlocal enableDelayedExpansion
set userPassOK=1
findstr /x /c:"!username!" Username.dat || set "userPassOK="
findstr /x /c:"!password!" Password.dat || set "userPassOK="
if defined userPassOK (echo username and password passed) else echo Invalid username/password