Как я могу маскировать ввод с помощью командного файла без дополнительного файла

Мне нужен командный файл для маскировки ввода с помощью * без дополнительного файла

Например

http://pastebin.com/2c4EtG4g

этот код работает успешно, но он очень медленный, когда я пишу письмо, может кто-нибудь дать мне

быстро и без дополнительного файла? или отредактировать код в ссылке, чтобы быть быстрым?

Ответ 1

Соответствует ли это вашему критерию "нет лишнего файла"?

Это командный файл, который создает и удаляет инструмент для получения ввода, и поэтому он полностью переносится и работает также на 64-битных машинах.

Герберт Клебауэр написал утилиту, а исходный код можно найти в Usenet.

Это требует Vista, и позже я думаю.

Группы новостей: alt.msdos.batch.nt
Тема: Re: HInput.cmd(новая версия)
Дата: Пн, 25 Фев 2013 19:08:59 +0100

@echo off
certutil -f -decode %~f0 pass.exe>nul
set /p =Enter password: <nul
for /f %%i in ('pass.exe') do set password=%%i
echo.
echo %password%
del pass.exe
pause
goto :eof
-----BEGIN CERTIFICATE-----
TVpgAQEAAAAEAAAA//8AAGABAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAoAAAAA4fug4AtAnNIbgBTM0hTmljZSB0byBtZWV0IHNvbWVi
b2R5IHdobyBpcyBzdGlsbCB1c2luZyBET1MsDQpidXQgaGlzIHByb2dyYW0gcmVx
dWlyZXMgV2luMzIuDQokAFBFAABMAQEAUHmlNgAAAAAAAAAA4AAPAQsBBQwAAgAA
AAAAAAAAAADIEAAAABAAAAAgAAAAAEAAABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA
ACAAAAACAAAAAAAAAwAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAA
HBAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAcAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAADkBQAAABAAAAACAAAAAgAA
AAAAAAAAAAAAAAAAIAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuEAAAfBAAAIwQAACYEAAA
pBAAALYQAAAAAAAAUhAAAAAAAAAAAAAARBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAEtFUk5FTDMyLmRsbAAAbhAAAHwQAACMEAAAmBAAAKQQAAC2EAAAAAAAAAAA
RXhpdFByb2Nlc3MAAABHZXRTdGRIYW5kbGUAAAAAUmVhZEZpbGUAAAAAV3JpdGVG
aWxlAAAAR2V0Q29uc29sZU1vZGUAAAAAU2V0Q29uc29sZU1vZGUAAOiDAAAAPA10
DuguAAAAsCroCAAAAOvp/xUAEEAAUKLMFUAAMcADBdwVQAB1LGr0/xUEEEAAo9wV
QADrHVCizBVAADHAAwXYFUAAdQ1q9f8VBBBAAKPYFUAAagBo4BVAAGoBaMwVQABQ
/xUMEEAACcB1CGoA/xUAEEAAgT3gFUAAAQAAAHXsWMMxwAMF1BVAAHU3avb/FQQQ
QACj1BVAAGjQFUAAUP8VEBBAAIAl0BVAAOH/NdAVQAD/NdQVQAD/FRQQQACh1BVA
AGoAaOAVQABqAWjMFUAAUP8VCBBAAAnAdQhqAP8VABBAAA+2BcwVQACBPeAVQAAB
AAAAdAW4/////8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA==
-----END CERTIFICATE-----
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Ответ 2

Вы можете сделать следующее:

ИЗМЕНИТЬ:

  @Echo Off  
  :HInput    
  SetLocal DisableDelayedExpansion
Echo Enter your Code :
   Set "Line="
   For /F %%# In (
   '"Prompt;$H&For %%# in (1) Do Rem"'
   ) Do Set "BS=%%#"

  :HILoop
   Set "Key="
   For /F "delims=" %%# In (
   'Xcopy /W "%~f0" "%~f0" 2^>Nul'
   ) Do If Not Defined Key Set "Key=%%#"
   Set "Key=%Key:~-1%"
   SetLocal EnableDelayedExpansion
   If Not Defined Key Goto :HIEnd
  If %BS%==^%Key% (Set /P "=%BS% %BS%" <Nul
   Set "Key="
   If Defined Line Set "Line=!Line:~0,-1!"
   ) Else Set /P "=*" <Nul
   If Not Defined Line (EndLocal &Set "Line=%Key%"
   ) Else For /F delims^=^ eol^= %%# In (
   "!Line!") Do EndLocal &Set "Line=%%#%Key%"
  Goto :HILoop

  :HIEnd
   Echo(
Echo Your code is :  "!Line!"
   Pause
   Goto :Eof