0

我正在编写一个批处理文件程序,它从用户那里获取用户名和密码,并通过将它们与两个文件进行比较来检查它们,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呢?

4

1 回答 1

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
于 2012-06-12T04:32:16.647 回答