Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何创建一个批处理文件,该文件将提示输入用户名和密码,然后将其写入注册表?_Windows_Batch File_Cmd - Fatal编程技术网

Windows 如何创建一个批处理文件,该文件将提示输入用户名和密码,然后将其写入注册表?

Windows 如何创建一个批处理文件,该文件将提示输入用户名和密码,然后将其写入注册表?,windows,batch-file,cmd,Windows,Batch File,Cmd,请对以下问题给予提示:我必须创建两个Windows注册表字符串值,比如USER和PASSWORD,但是来自批处理文件.bat,意思是用户双击批处理文件TEST.bat,然后打开一个cmd窗口,它提示输入用户名,他键入用户名,提示输入密码后,用户键入密码,然后窗口关闭。 成功运行后,bach文件TEST.BAT将生成两个名为USER和PASSWORD的Windows注册表字符串值,它们的值正是用户在promt窗口中输入的值。 如果我只想创建一个将插入两个值的批处理文件,我可以使用以下语法使用reg

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

reg add HKCU\SOFTWARE\SSIS/v USER/t reg_SZ/d JOHN/f reg添加HKCU\SOFTWARE\SSIS/v PASSWORD/t reg_SZ/d 123qwe/F 但是我怎样才能使它成为一个批处理文件,提示用户输入用户名和密码呢?如果没有C控制台应用程序,这很容易

@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

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

当然,您知道这不是很安全,因为您正在注册表中存储未加密的密码。考虑到这一点。。。这并不是完美的,但比所有人都能看到的打字要好,而且它是纯批处理。它打开了另一个很难阅读的窗口。根据你的喜好调整颜色。不幸的是,黑对黑不是一种选择。将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%

尝试此操作并获得错误消息:

@echo off &setlocal set /p "username=enter your username: " set /p "passwd=enter your password: " reg add "HKCU\SOFTWARE\SSIS" /v USER /t REG_SZ /d "%username%" /f || echo FAIL && echo success reg add "HKCU\SOFTWARE\SSIS" /v PASSWORD/t REG_SZ /d "%passwd%"/f || echo FAIL && echo success
非常感谢你,如果你知道的话,当然很简单:但是如果我需要隐藏键入的文本?不显示用户类型?请看这里的帖子:速度非常慢,你的pw中不能有特殊字符。为此,你需要使用一个exe文件。万分感谢:工作很有魅力。祝您有个美好的一天: