bat中获取用户输入,如何做到不回显

调皮的芋头 2012-09-11 11:12:22
获取用户输入时,如果是输入密码,则不回显,如下:
SET password=MANAGER
SET /P password="Password [%password%]: "

请问,如何做到呢?
...全文
13987 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forever_Young 2012-09-12
  • 打赏
  • 举报
回复

@echo off
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>in.com
set /p password=password:<nul
for /f "tokens=*" %%a in ('in.com') do (set password=%%a)
del in.com
cls
echo 你输入的密码是: %password%
pause>nul
Gloveing 2012-09-11
  • 打赏
  • 举报
回复
最开始:
@echo off
赵4老师 2012-09-11
  • 打赏
  • 举报
回复
a.bat:
password.exe
FOR /F %%p IN (password.txt) DO set PASSWORD=%%p
del password.txt >nul
if "%PASSWORD%"=="" goto e
if "%PASSWORD%"=="" goto e
rem 做需要%PASSWORD%的一系列工作
:e
set PASSWORD=

password.c
#include <conio.h>
#include <stdio.h>
char pw[40];
int i,ch;
FILE *f;
void main() {
cprintf("\r\nPassword:");
i=0;pw[i]=0;
while (1) {
ch=getch();
if (ch==13 || i>=39) break;
switch (ch) {
case 27:
cprintf("\rPassword: %40s"," ");
cprintf("\rPassword: ");
i=0;pw[i]=0;
break;
case 8:
if (i>0) {
i--;
pw[i]=0;
cprintf("\b \b");
}
break;
default:
pw[i]=ch;
i++;
pw[i]=0;
cprintf("*");
break;
}
}
cprintf("\r\n");
f=fopen("password.txt","w");
fprintf(f,"%s\n",pw);
fclose(f);
}

6,847

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧