批处理文件命令隐藏密码。

17 浏览
0 Comments

批处理文件命令隐藏密码。

我有一个批处理文件,我写了一个打开putty的命令,并希望将其制作成一个通用的脚本供其他人使用。脚本如下:

@echo off
::由Mark Gulick编写::
::今天的日期20150316::
set /p U="输入用户名:"
set /p P="输入密码:"
set /p DC="输入DC号码:"
start /d "C:\Program Files (x86)\putty\" PUTTY.EXE %U%@b0%DC%db -pw %P%
pause

我希望密码不显示出来,并尝试了一些方法,但没有找到适用的。我可能做错了什么。我的脚本写得有点生疏。我是不是漏掉了什么东西,或者应该使用除了set命令之外的其他方法?

0
0 Comments

批处理文件命令隐藏密码的出现原因是为了在命令行中输入密码时保护密码的安全性,防止密码被他人看到。解决方法是使用PowerShell命令来读取密码,并将其转换为安全字符串,然后将其传递给其他命令。以下是具体的解决方法:

1. 首先,禁用延迟扩展和设置命令行窗口的标题、大小和颜色。

2. 使用“set /p”命令提示用户输入用户名,并将其存储在变量“U”中。

3. 调用“InputPassword”标签来提示用户输入密码,并将其存储在变量“P”中。

4. 使用“set /p”命令提示用户输入DC号,并将其存储在变量“DC”中。

5. 启用延迟扩展,并使用变量“U”、“DC”和“P”来运行其他命令,例如启动PuTTY并传递用户名、DC号和密码。

6. 使用“pause”命令暂停批处理文件的执行,以便用户可以查看结果。

另外,为了处理特殊情况下密码包含分号的情况,需要在“for /f”命令中添加“eol=”参数,以允许分号出现在密码中。这样可以确保在读取密码时不会出现问题。

需要注意的是,根据反馈信息,测试结果显示Windows系统可能已经自动处理了密码中包含分号或撇号的情况,因此不再需要特别处理。

以上批处理文件命令可以隐藏密码并保护密码的安全性。使用PowerShell命令读取密码,并将其传递给其他命令,确保在命令行中输入密码时不会被他人看到。

0
0 Comments

问题:批处理命令隐藏密码的原因和解决方法

在DOSTips的这篇帖子中引用了MC ND在这里的帖子,但我找不到原始帖子,所以我再次贴出来。每当您想要获取密码并隐藏输入时,只需使用call :getPassword target_variable input_prompt,其中target_variable是您存储密码的变量的名称,input_prompt是提示用户输入密码的内容。

off

setlocal enabledelayedexpansion

set /p "user_name=Enter username here:"

call :getPassword user_password "Enter password here: "

:: 用户的密码已存储在变量%user_password%中

exit /b

:getPassword

set "_password="

for /f %%a in ('"prompt;$H&for %%b in (0) do rem"') do set "BS=%%a"

set /p "=%~2" <nul

:keyLoop

set "key="

for /f "delims=" %%a in ('xcopy /l /w "%~f0" "%~f0" 2^>nul') do if not defined key set "key=%%a"

set "key=%key:~-1%"

if defined key (

if "%key%"=="%BS%" (

if defined _password (

set "_password=%_password:~0,-1%"

set /p "=!BS! !BS!"<nul

)

) else (

set "_password=%_password%%key%"

set /p "="<nul

)

goto :keyLoop

)

echo/

set "%~1=%_password%"

goto :eof

对于那些不熟悉批处理的人,请提供一个完整、功能齐全的.bat文件示例,适用于Windows 10 x64,其中包含一个简单的用户名提示和密码提示,包括"Enter Username here:[下一行]"和"Enter Password here:[下一行]"?谢谢。我知道你已经友好地解释了变量的用法,但当我尝试编写和执行一个.bat文件时,我总是遇到可怕的“立即打开、立即关闭而不执行任何操作”的结果。

- 完成。此外,建议在命令提示符中打开并运行脚本,而不是双击它。

非常好,谢谢!当我第一次测试它时,它仍然不起作用,就像我制作的大多数.bat文件一样。所以我搜索了一些资料,发现你需要用Notepad.exe以ANSI编码(ASCII)保存.bat文件。这可能一直是我尝试创建功能性.bat文件的主要问题。奇怪的是,这并没有经常被指出。

- 这不是一个经常导致脚本出错的问题,除非您使用for循环或保存为UTF-8编码。

0