-1

请善待并给我以下问题的提示:我必须创建两个 Windows 注册表字符串值,比如说“USER”和“PASSWORD”,但是来自批处理文件 (.bat),这意味着用户双击批处理文件,“TEST.BAT”,然后打开一个 cmd 窗口,它提示文本“输入用户名”,他输入用户名,在提示“输入密码”后,用户输入他的密码,然后窗口关闭。成功运行后,bach文件“TEST.BAT”将生成两个Windows注册表字符串值,分别命名为“USER”和“PASSWORD”,它们的值正是用户在promt窗口输入的值。如果我只想制作一个将插入两个值的批处理文件,我可以使用以下语法使用“reg add”:

reg add HKCU\SOFTWARE\SSIS /v USER /t REG_SZ /d "JOHN" /f

reg add HKCU\SOFTWARE\SSIS /v PASSWORD/t REG_SZ /d "123qwe." /F

但是我怎样才能使它成为一个批处理文件,它将提示用户输入其用户名和密码?(没有 C# 控制台应用程序)

4

3 回答 3

1

这很容易。

@echo off
set /p username="Please enter your username: "
set /p passwd="Please enter your password: "
cls
reg add HKCU\SOFTWARE\SSIS /v USER /t REG_SZ /d %username% /f
reg add HKCU\SOFTWARE\SSIS /v PASSWORD/t REG_SZ /d %passwd% /f
exit

请注意,当您在控制台中输入密码时,它是可见的。有一种方法可以隐藏密码,但非常少见。让我知道,当你需要它。

于 2013-07-02T08:23:24.403 回答
1

当然,您知道这不是很安全,因为您在注册表中存储了未加密的密码。考虑到这一点......这并不完美,但比打字更好,而且它是纯批处理。它打开了另一个很难阅读的窗口。根据自己的喜好调整颜色。不幸的是,黑底黑不是一种选择。将 syss 解决方案中的 "set /p passwd=" 行和 "cls" 替换为:

SET TempFile=%TEMP%\%~n0.txt
IF EXIST %TempFile% DEL /q %TempFile%
ECHO.Enter Password in the Password window and press ENTER
START "Enter Password Below" /wait CMD /c "MODE con cols=40 lines=1 & COLOR AB & SET /p "In=Enter Password^> " & IF DEFINED In CALL ECHO.%%In%%>"%TempFile%""
IF EXIST "%TempFile%" FOR /F "usebackq tokens=*" %%A in ("%TempFile%") DO SET "password=%%A" & DEL /q %TempFile%
于 2013-07-02T10:59:52.613 回答
1

试试这个并收到一条错误消息:

@echo off &setlocal
set /p "用户名=输入您的用户名:"
set /p "passwd=输入你的密码:"
reg add "HKCU\SOFTWARE\SSIS" /v USER /t REG_SZ /d "%username%" /f || 回声失败 && 回声成功
reg add "HKCU\SOFTWARE\SSIS" /v PASSWORD/t REG_SZ /d "%passwd%"/f || 回声失败 && 回声成功

于 2013-07-02T17:25:51.513 回答