क्या मैं बैट फाइल में इनपुट टेक्स्ट को मास्क कर सकता हूं?


102

मैं कुछ अन्य कार्यक्रमों को निष्पादित करने के लिए एक बैच फ़ाइल लिख रहा हूं। इस स्थिति में मुझे पासवर्ड के लिए संकेत देना होगा। क्या मेरे पास इनपुट टेक्स्ट को मास्क करने का कोई तरीका है? मुझे इनपुट वर्णों के बजाय ******* वर्णों को मुद्रित करने की आवश्यकता नहीं है। लिनक्स का पासवर्ड शीघ्र व्यवहार (टाइप करते समय कुछ भी नहीं छापना) पर्याप्त है।

@echo off
SET /P variable=Password : 
echo %variable%
Pause

यह इनपुट पढ़ेगा लेकिन मैं इस दृष्टिकोण का उपयोग करके टेक्स्ट को मास्क नहीं कर सकता।


जवाबों:


50

XP और Server 2003 तक, आप किसी अन्य शामिल टूल (VBScript) का उपयोग कर सकते हैं - निम्नलिखित दो स्क्रिप्ट आप जो काम चाहते हैं।

पहला getpwd.cmd:

@echo off
<nul: set /p passwd=Password: 
for /f "delims=" %%i in ('cscript /nologo getpwd.vbs') do set passwd=%%i
echo.

तब getpwd.vbs:

Set oScriptPW = CreateObject("ScriptPW.Password")
strPassword = oScriptPW.GetPassword()
Wscript.StdOut.WriteLine strPassword

getpwd.vbsबस उपयोगकर्ता से पासवर्ड इनपुट करने के लिए पासवर्ड वस्तु का उपयोग करता है और उसके बाद मानक आउटपुट में इसे प्रिंट (अगले अनुच्छेद क्यों कि टर्मिनल में दिखाई नहीं देता समझा जाएगा)।

getpwd.cmdआदेश स्क्रिप्ट थोड़ा जटिल काम है, लेकिन यह मूल रूप से इस प्रकार काम करता है।

"<nul: set /p passwd=Password: "कमांड का प्रभाव नई ट्रेलिंग चरित्र के साथ प्रॉम्प्ट को आउटपुट करना है - यह शेल "echo -n"से कमांड का अनुकरण करने का एक डरपोक तरीका है bash। यह passwdएक अप्रासंगिक साइड इफेक्ट के रूप में एक खाली स्ट्रिंग पर सेट होता है और इनपुट का इंतजार नहीं करता क्योंकि यह nul:डिवाइस से इसका इनपुट ले रहा है।

"for /f "delims=" %%i in ('cscript /nologo getpwd.vbs') do set passwd=%%i"बयान trickiest बिट है। यह कोई Microsoft "विज्ञापन" के साथ VBScript चलाता है, ताकि केवल लाइन आउटपुट पासवर्ड (VBscript से) हो "Wscript.StdOut.WriteLine strPassword"

कुछ भी नहीं करने के लिए सीमांकक की स्थापना के लिए रिक्त स्थान के साथ एक संपूर्ण इनपुट लाइन पर कब्जा करने की आवश्यकता होती है, अन्यथा आपको केवल पहला शब्द मिलता है। "for ... do set ..."बिट सेट passwdVBScript से वास्तविक पासवर्ड उत्पादन किया जाना है।

तब हम एक रिक्त लाइन (लाइन को समाप्त करने के लिए "Password: ") को गूंजते हैं और passwdकोड चलने के बाद पासवर्ड पर्यावरण चर में होगा ।


अब, जैसा कि उल्लेख किया गया है, scriptpw.dllकेवल XP / 2003 तक उपलब्ध है। इसे ठीक करने के लिए, आप scriptpw.dllफ़ाइल को Windows\System32XP / 2003 सिस्टम के फ़ोल्डर से Winnt\System32या Windows\System32अपने सिस्टम पर फ़ोल्डर में कॉपी कर सकते हैं। एक बार DLL की प्रतिलिपि हो जाने के बाद, आपको इसे चलाकर पंजीकृत करना होगा:

regsvr32 scriptpw.dll

Vista और बाद में DLL को सफलतापूर्वक पंजीकृत करने के लिए, आपको व्यवस्थापक विशेषाधिकारों की आवश्यकता होगी। मैंने इस तरह के एक कदम की वैधता की जाँच नहीं की है इसलिए गुफा लेक्टर।


यदि आप पुराने DLL फ़ाइलों (सुविधा या कानूनी कारणों से) को ट्रैक करने और पंजीकृत करने के प्रयास में अत्यधिक उत्सुक नहीं हैं , तो एक और तरीका है। विंडोज के बाद के संस्करणों (जिनके पास आवश्यक DLL नहीं है) को आपके लिए Powershell उपलब्ध होना चाहिए।

और, वास्तव में, आपको वास्तव में इसे पूरी तरह से उपयोग करने के लिए अपनी स्क्रिप्ट को अपग्रेड करने पर विचार करना चाहिए, क्योंकि यह भाषा की तुलना में बहुत अधिक सक्षम स्क्रिप्टिंग भाषा है cmd.exe। हालाँकि, यदि आप अपने कोड के बल्क को cmd.exeस्क्रिप्ट के रूप में रखना चाहते हैं (जैसे कि यदि आपके पास बहुत अधिक कोड है जिसे आप कनवर्ट नहीं करना चाहते हैं), तो आप उसी ट्रिक का उपयोग कर सकते हैं।

सबसे पहले, cmdस्क्रिप्ट को संशोधित करें ताकि यह CScript की बजाय पॉवर्स को कॉल करे:

@echo off
for /f "delims=" %%i in ('powershell -file getpwd.ps1') do set passwd=%%i

Powershell स्क्रिप्ट समान रूप से सरल है:

$password = Read-Host "Enter password" -AsSecureString
$password = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto($password)
echo $password

हालांकि वास्तविक पासवर्ड पाठ प्राप्त करने के लिए कुछ मार्शलों के साथ।

याद रखें कि, अपनी मशीन पर स्थानीय अहस्ताक्षरित स्क्रिप्ट को चलाने के लिए, आपको निष्पादन नीति (ड्रैकोनियन, हालांकि बहुत सुरक्षित) से संशोधित करने की आवश्यकता हो सकती है, जैसे कुछ:

set-executionpolicy remotesigned

पॉवरशेल के भीतर से ही।


2
वाह, कि <nul: सेट / पी वास्तव में अच्छा है। अभी तक पता नहीं था कि :-)। लेकिन VBScript मेरे लिए काम नहीं करता है: Microsoft VBScript रनटाइम त्रुटि: ActiveX घटक ऑब्जेक्ट नहीं बना सकता है: 'ScriptPW.Pwordword'। विंडोज 7 बीटा x64 यहाँ।
जोए

दिलचस्प है, यह XP पर उपलब्ध होने वाला है। मुझे संदेह है कि Win7 अभी तक समाप्त नहीं हुआ है अगर यह वहां काम नहीं करता है (या आपको इसे काम करने के लिए कुछ अन्य चालबाजी करनी है)। थोड़ा शोध से पता चलता है कि क्यों: मेरे अपडेट को देखें।
पैक्सिडाब्लो

2
अच्छा लगा। यह नोट करना भी अच्छा है कि आप वीबीएस फाइल को किसी भी समकक्ष भाषा के लिए स्थानापन्न कर सकते हैं जिसे कमांड लाइन से बुलाया जा सकता है। उदाहरण के लिए, आप cscript खंड को प्रतिस्थापित कर सकते हैं: 'python -c "से getpass आयात getpass; pwd = getpass (); प्रिंट pwd;"'
Cerin

1
जब यह प्रश्न नया था तब मैंने इस तरह से उपयोग किया था - मैंने बिना किसी अतिरिक्त स्क्रिप्ट के इसे करने के तरीके के नीचे उत्तर दिया।
चाचा

1
@ बाल: इसलिए मेरा खंड "अब, दुर्भाग्य से, ..." शुरू हो रहा है। हालांकि, मैंने उम्मीद से बेहतर बनाने के लिए उत्तर में अधिक विकल्प जोड़े हैं। विशेष रूप से, इसके बजाय सेशेल्स का उपयोग scriptpw.dll
paxdiablo

153

हां - मैं 4 साल लेट हूं।

लेकिन मुझे बाहरी स्क्रिप्ट बनाने के बिना एक पंक्ति में ऐसा करने का एक तरीका मिला; एक बैच फ़ाइल से पॉवरशेल कमांड को कॉल करके।

TessellatingHeckler के लिए धन्यवाद - एक पाठ फ़ाइल के लिए आउटपुट के बिना (मैं एक चर में शक्तियां कमांड सेट करता हूं, क्योंकि यह लूप के लिए एक लंबी लाइन में बहुत गड़बड़ है)।

@echo off
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
echo %password%

मूल रूप से मैंने इसे एक टेक्स्ट फ़ाइल के आउटपुट के लिए लिखा था, फिर उस टेक्स्ट फ़ाइल से पढ़ा। लेकिन उपरोक्त विधि बेहतर है। एक बेहद लंबी, अतुलनीय रेखा के पास:

@echo off
powershell -Command $pword = read-host "Enter password" -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > .tmp.txt & set /p password=<.tmp.txt & del .tmp.txt
echo %password%

मैं इसे नीचे तोड़ दूँगा - आप इसे कैरेट का उपयोग करके कुछ पंक्तियों में विभाजित कर सकते हैं ^, जो कि बहुत अच्छा है ...

@echo off
powershell -Command $pword = read-host "Enter password" -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > .tmp.txt 
set /p password=<.tmp.txt & del .tmp.txt
echo %password%

यह आलेख बताता है कि पावरशेल कमांड क्या कर रहे हैं; अनिवार्य रूप से इसका उपयोग करके इनपुट प्राप्त होता है Read-Host -AsSecureString- निम्नलिखित दो पंक्तियाँ उस सुरक्षित स्ट्रिंग को सादे पाठ में परिवर्तित करती हैं, फिर आउटपुट (प्लेनटेक्स्ट पासवर्ड) का उपयोग करके एक पाठ फ़ाइल में भेजा जाता है >.tmp.txt। उस फ़ाइल को तब एक चर में पढ़ा जाता है और हटा दिया जाता है।


5
मूल उत्तर बहुत अच्छा था, लेकिन मुझे लगता है कि यह अब निश्चित होना चाहिए
जेम्स वाइसमैन

30
ये जबरदस्त है। लेकिन जिस तरह से यह एक सादा पाठ पासवर्ड को डिस्क पर सहेजता है वह मुझे असहज बनाता है। इसके बजाय ऐसा करने से बचें: for /f "usebackq tokens=*" %%p in (``powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"``) do set password=%%pऔर फिर echo %password%। एनबी। मुझे यह टिप्पणी ठीक से बचने के लिए नहीं मिल रही है - "शक्तियां" से पहले, और अंत से पहले ")" दो बैकटिक्स हैं, लेकिन एक बैकटिक होना चाहिए।
TessellatingHeckler

1
@TessellatingHeckler अच्छा विचार है, मैंने अपना उत्तर अपडेट कर दिया है। आपके सुझाव का थोड़ा संशोधित संस्करण। धन्यवाद।
अंकलमेट

क्या प्रत्येक कुंजीपट के लिए "*" (तारा) प्रतिध्वनित होने से इस विधि को रोकना संभव है? यानी मैं नहीं चाहता कि एक पर्यवेक्षक को पता चले कि पासवर्ड कितना लंबा है।
सैम हसलर

1
@RegieBaguio नहीं, आपको Powershell सक्षम होना चाहिए। नीचे npocmaka के शुद्ध बैच समाधान पर एक नज़र डालें। यह बहुत अधिक जटिल है, लेकिन आपको काम करना चाहिए।
चाचा

26

1.Pure बैच समाधान जो (ab) XCOPYकमांड का उपयोग करता है और उसके /P /Lस्विच यहां पाए जाते हैं (इस पर कुछ सुधार यहां पाए जा सकते हैं ):

:: Hidden.cmd
::Tom Lavedas, 02/05/2013, 02/20/2013
::Carlos, 02/22/2013
::https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/f7mb_f99lYI


@Echo Off
:HInput
SetLocal EnableExtensions EnableDelayedExpansion
Set "FILE=%Temp%.\T"
Set "FILE=.\T"
Keys List >"%File%"
Set /P "=Hidden text ending with Ctrl-C?: " <Nul
Echo.
Set "HInput="
:HInput_
For /F "tokens=1* delims=?" %%A In (
 '"Xcopy /P /L "%FILE%" "%FILE%" 2>Nul"'
) Do (
  Set "Text=%%B"
  If Defined Text (
    Set "Char=!Text:~1,1!"
    Set "Intro=1"
    For /F delims^=^ eol^= %%Z in ("!Char!") Do Set "Intro=0"
    Rem If press Intro
    If 1 Equ !Intro! Goto :HInput#
    Set "HInput=!HInput!!Char!"
  )
)
Goto :HInput_
:HInput#
Echo(!HInput!
Goto :Eof 

1.2 प्रतिस्थापित कमांड के आधार पर दूसरा तरीका

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set /P "=Enter a Password:" < Nul
Call :PasswordInput
Echo(Your input was:!Line!

Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401.
::Set in variable Line a input password
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&Goto :Eof
If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
Set "Line=!Line:~0,-1!"
)
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd

2.Password Submitter जो HTA पॉप-अप का उपयोग करता हैयह एक संकर .bat / jscript / mshta फ़ाइल है और इसे .bat के रूप में सहेजा जाना चाहिए :

<!-- :
:: PasswordSubmitter.bat
@echo off
for /f "tokens=* delims=" %%p in ('mshta.exe "%~f0"') do (
    set "pass=%%p"
)

echo your password is %pass%
exit /b
-->

<html>
<head><title>Password submitter</title></head>
<body>

    <script language='javascript' >
        window.resizeTo(300,150);
        function entperPressed(e){
                if (e.keyCode == 13) {
                    pipePass();
                }
        }
        function pipePass() {
            var pass=document.getElementById('pass').value;
            var fso= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
            close(fso.Write(pass));

        }
    </script>

    <input type='password' name='pass' size='15' onkeypress="return entperPressed(event)" ></input>
    <hr>
    <button onclick='pipePass()'>Submit</button>

</body>
</html>

3. एक स्व-संकलित .net हाइब्रिड .आगेन को बचाया जाना चाहिए .bat। अन्य समाधानों के साथ अंतर करने पर यह एक छोटी .exe फ़ाइल बना / एकत्रित कर देगा जिसे कॉल किया जाएगा (यदि आप चाहें तो आप इसे हटा सकते हैं)। इसके अलावा स्थापित .net ढांचे की आवश्यकता है लेकिन यह समस्या नहीं है:

@if (@X)==(@Y) @end /* JScript comment
@echo off
setlocal enableDelayedExpansion

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d  /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

if not exist "%~n0.exe" (
    "%jsc%" /nologo /out:"%~n0.exe" "%~dpsfnx0"
)

for /f "tokens=* delims=" %%p in ('"%~n0.exe"') do (
    set "pass=%%p"
)

echo your password is !pass!

endlocal & exit /b %errorlevel%

*/



import System;



var pwd = "";
var key;

Console.Error.Write("Enter password: ");

        do {
           key = Console.ReadKey(true);

           if ( (key.KeyChar.ToString().charCodeAt(0)) >= 20 && (key.KeyChar.ToString().charCodeAt(0) <= 126) ) {
              pwd=pwd+(key.KeyChar.ToString());
              Console.Error.Write("*");
           }

           if ( key.Key == ConsoleKey.Backspace && pwd.Length > 0 ) {
               pwd=pwd.Remove(pwd.Length-1);
               Console.Error.Write("\b \b");
           }


        } while (key.Key != ConsoleKey.Enter);
        Console.Error.WriteLine();
        Console.WriteLine(pwd);

6
मेरी हैसी भावना झुनझुनी है, खासकर हाइब्रिड पर!
मार्क के कोवन

2
यह पहला समाधान बहुत ही चतुर है - अच्छा एक +1।
चाचा

यदि आप जल्दी टाइप करते हैं, तो बदले हुए कमांड पर आधारित 2.1 विधि कुंजीपेप्स को याद करेगी
सैम हस्लर

@SamHasler - हाँ। मैं इसे ठीक करने की कोशिश करूँगा। फिर भी 2.1 के साथ समस्या को पुन: उत्पन्न नहीं कर सका। मैंने यह भी जांचने के लिए HTA अपडेट किया है कि क्या एंटर दबाया गया है।
npocmaka

1
@npocmaka 1.2 विधि का अंतिम संस्करण (अंतिम अद्यतन: 20150405) यहाँ है: consolesoft.com/batch/password_input/password_input.cmd
carlos

16

मैं शायद बस करूँगा:

..
echo Before you enter your password, make sure no-one is looking!
set /P password=Password:  
cls
echo Thanks, got that.
.. 

तो आपको एक प्रॉम्प्ट मिलता है, फिर उसके एंटर होने के बाद स्क्रीन क्लियर हो जाती है।

ध्यान दें कि यदि बैच फ़ाइल को कमांड प्रॉम्प्ट से निष्पादित किया जाता है तो धन्यवाद पासवर्ड सीएमडी इतिहास में संग्रहित किया जाएगा (धन्यवाद @ मर्क के काउल )।

अगर यह पर्याप्त नहीं था, तो मैं या तो अजगर पर स्विच करूंगा, या स्क्रिप्ट के बजाय एक निष्पादन योग्य लिखूंगा।

मुझे पता है कि इनमें से कोई भी सही नहीं है, लेकिन हो सकता है कि आपके लिए बहुत अच्छा हो :)


4
ध्यान दें कि यदि बैच फ़ाइल को कमांड प्रॉम्प्ट से निष्पादित किया गया है, तो दर्ज पासवर्ड सीएमडी इतिहास में संग्रहीत किया जाएगा। कोई डाउनवोट नहीं है, जैसा कि आपने कहा था कि cmd नौकरी के लिए गलत उपकरण है।
मार्क के कोवन

यदि आप कंसोल में कमांड इतिहास आपके लिए महत्वपूर्ण नहीं है, तो आप इसके doskey /reinstallतुरंत बाद पिछले कमांड बफ़र को खाली करने के लिए चला सकते clsहैं।
RuntimeException 11

1
यदि आप doskey का उपयोग नहीं करना चाहते हैं / फिर से आर्डर करना चाहते हैं और कमांड हिस्ट्री को क्लियर करना चाहते हैं, तो एक अन्य विकल्प उपरोक्त टर्मिनल को एक अलग टर्मिनल विंडो में रन करता है और तुरंत बाहर निकल जाता है। ध्यान दें कि यह अभी भी आपके टाइप किए गए स्ट्रिंग को तारांकन के साथ प्रतिस्थापित नहीं करता है। उपरोक्त समाधान एक विकल्प है यदि आप पावरशेल नहीं चलाना चाहते हैं। C:\>start "console" cmd /c ireadconsole.bat
RuntimeException

9

सभी प्रकार के स्वरूपित इनपुट के लिए आप ReadFormattedLine सबरूटीन का उपयोग कर सकते हैं। उदाहरण के लिए, नीचे दिया गया कमांड 8 वर्णों का एक पासवर्ड पढ़ता है, स्क्रीन में तारांकन प्रदर्शित करता है, और स्वचालित रूप से जारी रखने की आवश्यकता नहीं है:

call :ReadFormattedLine password="********" /M "Enter password (8 chars): "

यह सबरूटीन शुद्ध बैच में लिखा गया है, इसलिए इसे किसी भी अतिरिक्त कार्यक्रम की आवश्यकता नहीं है, और यह कई स्वरूपित इनपुट संचालन की अनुमति देता है, जैसे कि बस नंबर पढ़ें, अक्षरों को अपरकेस में परिवर्तित करें, आदि आप ReadFormattedLine उप- रेखा को विशिष्ट प्रारूप के साथ एक पंक्ति से पढ़ सकते हैं


EDIT 2018-08-18 : "अदृश्य" पासवर्ड दर्ज करने की नई विधि

FINDSTR कमांड में एक अजीब बग है जो तब होता है जब इस कमांड का उपयोग वर्णों को दिखाने के लिए किया जाता है और इस तरह के कमांड का आउटपुट CON डिवाइस पर रीडायरेक्ट होता है। रंग में पाठ दिखाने के लिए FINDSTR कमांड का उपयोग करने के विवरण के लिए, इस विषय को देखें ।

जब FINDSTR कमांड के इस फॉर्म के आउटपुट को CON पर पुनर्निर्देशित किया जाता है, तो टेक्स्ट के वांछित रंग में आउटपुट के बाद कुछ अजीब होता है: सभी टेक्स्ट के आउटपुट के बाद "अदृश्य" अक्षर होते हैं, हालाँकि एक अधिक सटीक वर्णन यह है कि टेक्स्ट है ब्लैक बैकग्राउंड पर ब्लैक टेक्स्ट के रूप में आउटपुट। यदि आप पूरे स्क्रीन के अग्रभूमि और पृष्ठभूमि के रंगों को रीसेट करने के लिए COLOR कमांड का उपयोग करते हैं तो मूल पाठ दिखाई देगा। हालाँकि, जब पाठ "अदृश्य" होता है तो हम SET / P कमांड निष्पादित कर सकते हैं, इसलिए दर्ज किए गए सभी अक्षर स्क्रीन पर दिखाई नहीं देंगे।

@echo off
setlocal

set /P "=_" < NUL > "Enter password"
findstr /A:1E /V "^$" "Enter password" NUL > CON
del "Enter password"
set /P "password="
cls
color 07
echo The password read is: "%password%"

5

एक अन्य विकल्प मेरा EditV32 (x86) या EditV64 (x64) कमांड-लाइन टूल है। उदाहरण के लिए:

editv32 -m -p "Password: " PWD

-म का मतलब है "नकाबपोश इनपुट" और -p प्रॉम्प्ट है। उपयोगकर्ता का इनपुट पीडब्ल्यूडी पर्यावरण चर में संग्रहीत है। आप इसे यहां पा सकते हैं:

https://westmesatech.com/?page_id=19


5
यह एकमात्र बंद-स्रोत समाधान नहीं है (Windows बंद स्रोत है!)। आप निश्चित रूप से इसका उपयोग नहीं करने के लिए स्वतंत्र हैं ...
Bill_Stewart

यदि स्रोत कोड की कमी आपको परेशान करती है, तो ReadLine.exe के बारे में मेरा अन्य उत्तर देखें ।
Bill_Stewart

अच्छा था! लाइसेंस आपको इसका उपयोग करने की अनुमति देता है। इसके अलावा, एकीकृत करने के लिए आसान है। बस बाहर निकलने के कोड को संभालने के लिए। 1. कमांड लाइन पर त्रुटि, 2 इनपुट लाइन रिक्त थी, 3 पर्यावरण चर नहीं बदला गया था, 4 प्रोग्राम को Ctrl-C के साथ निरस्त कर दिया गया था
जेम्स जेथिन

नोट: Editenv32 / editenv64 और रीडलाइन उपयोगिताओं को ओपन-सोर्स editenv उपयोगिता द्वारा अधिगृहीत किया गया है ।
Bill_Stewart

4

यदि स्रोत कोड की कमी आपको परेशान करती है, तो मेरे पास एक और विकल्प है।

@echo off
for /f "delims=" %%p in ('ReadLine -h -p "Enter password: "') do set PWD=%%p
echo You entered: %PWD%

आप इसे https://westmesatech.com/?page_id=49 से प्राप्त कर सकते हैं । स्रोत कोड शामिल है।


नोट: Editenv32 / editenv64 और रीडलाइन उपयोगिताओं को ओपन-सोर्स editenv उपयोगिता द्वारा अधिगृहीत किया गया है ।
Bill_Stewart

3

यदि आपके पास पायथन स्थापित है, तो आप उपयोग कर सकते हैं:

for /f "delims=" %%A in ('python -c "import getpass; print(getpass.getpass('Enter the CVS password: '));"') do @set CVSPASS=%%A
echo PASS: %CVSPASS%

उत्पादन:

Enter the CVS password:
PASS: 123

2

मैंने Blorgbeard के उपरोक्त समाधान का उपयोग किया जो वास्तव में मेरी राय में बहुत अच्छा है। फिर मैंने इसे इस प्रकार बढ़ाया:

  1. गूगल ansicon के लिए
  2. ज़िप फ़ाइल और नमूना पाठ फ़ाइल डाउनलोड करें।
  3. इंस्टॉल करें (इसका मतलब सिस्टम फाइल में कॉपी 2 फाइलें)

इसे इस तरह उपयोग करें:

@echo off
ansicon -p
set /p pwd=Password:ESC[0;37;47m
echo ESC[0m

यह आपके पासवर्ड प्रविष्टि के लिए कंसोल को ग्रे पर ग्रे में बदल देता है और आपके द्वारा किए जाने पर वापस स्विच करता है। ईएससी वास्तव में एक अप्राप्य चरित्र होना चाहिए, जिसे आप डाउनलोड किए गए नमूना पाठ फ़ाइल (नोटपैड में बाएं-तीर की तरह दिखाई देते हैं) से अपनी बैच फ़ाइल में कॉपी कर सकते हैं। आप सभी कलर कॉम्बिनेशन के कोड खोजने के लिए सैंपल टेक्स्ट फाइल का उपयोग कर सकते हैं।

यदि आप मशीन के व्यवस्थापक नहीं हैं, तो आप संभवतः गैर-सिस्टम निर्देशिका में फ़ाइलों को स्थापित करने में सक्षम होंगे, फिर आपको प्रोग्राम को कॉल करने और भागने के अनुक्रमों का उपयोग करने से पहले अपनी स्क्रिप्ट में निर्देशिका को पैठ में जोड़ना होगा। यह शायद वर्तमान निर्देशिका भी हो सकती है, अगर आपको केवल कुछ फ़ाइलों के गैर-व्यवस्थापक वितरण योग्य पैकेज की आवश्यकता है।


मैं इसका परीक्षण नहीं कर सकता, लेकिन इसके बाद टाइप किए गए पासवर्ड को cmd के इतिहास में प्रदर्शित होने की उम्मीद होगी।
मार्क के कोवन

@MarkKCowan बिल्कुल ऐसा ही होता है।
sjngm

1

एक बैच फ़ाइल बनाएं जो अदृश्य पात्रों के लिए आवश्यक कॉल करता है और फिर बैच फ़ाइल के लिए एक शॉर्टकट बनाएं।

दाएँ क्लिक करें

गुण

रंग की

पाठ == काला

पृष्ठभूमि == काला

लागू

ठीक है

आशा है कि इस तरह आप में मदद करता है !!!!!!!!


समय के आगे वातावरण स्थापित करने के कारण बैच की स्थिति में सभी व्यावहारिक नहीं हैं, भले ही सभी सोच के अच्छे दृष्टिकोण हों। ओह रुको, शायद यह काम करेगा: stackoverflow.com/a/14447306/14420 या शायद stackoverflow.com/questions/4339649/…
मैट विल्की

1

अद्यतन:
मैंने दो नए तरीकों को जोड़ा है जो इनपुट को छिपाने के लिए cls का उपयोग करने के बजाय केवल एक पंक्ति के साथ एक नया पॉप-अप बनाते हैं।

कमियां यह हैं कि एक विधि (विधि 2) रजिस्ट्री में कबाड़ छोड़ देती है - "यदि उचित अधिकारों के बिना चलाया जाता है", और दूसरा एक (विधि तीन) कुछ जंक को स्क्रिप्ट में जोड़ता है। यह कहने की आवश्यकता नहीं है कि इसे आसानी से किसी भी tmp फ़ाइल में लिखा जा सकता है और हटा दिया गया है। मैंने अभी एक विकल्प के साथ आने की कोशिश की है।

सीमा: पासवर्ड केवल अल्फ़ान्यूमेरिक हो सकता है - कोई अन्य वर्ण नहीं!

@echo off
if "%1"=="method%choice%" goto :method%choice%
::::::::::::::::::
::Your code here::
::::::::::::::::::
cls
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo ::::                   Batch script to prompt for password!                 :::
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:choice
echo.
echo 1. First method
echo.
echo 2. Second method
echo.
echo 3. Third method
echo.
set/p choice=Choose a method: 
if "%choice%" gtr "3" echo. & echo invalid option & echo. & pause & goto choice

call :vars
    set options= %num%%smAlph%%cpAlph%
    set pwdLen=6

if "%choice%" == "1" (
    set /p=Password: <nul 
    for /l %%i in (1,1,%pwdLen%) do call :password
) else (
    start /wait cmd /c call "%~f0" method%choice%
    )

call :result%choice%


::just to see if it worked!
echo.
echo The Password you entered is: "%pwd%"&pause>nul

::::::::::::::::::
::More code here::
::::::::::::::::::
exit /b





:vars
set num=1234567890
set smAlph=abcdefghijklmnopqrstuvwxyz
set cpAlph=ABCDEFGHIJKLMNOPQRSTUVWXYZ
    set pwd=
goto :EOF


:method2
call :popUp
setx result %pwd% >nul
goto :EOF

:method3
call :popUp
    >> "%~f0" echo.
    >> "%~f0" echo :result%choice%
    >> "%~f0" echo set pwd=%pwd%
goto :EOF

:popUp
title Password
mode con lines=1 cols=30
color 5a
set /p=Password: <nul
for /l %%i in (1,1,%pwdLen%) do call :password
goto :EOF

:password
:: If you don't want case sensative remove "/cs" but remember to remove %cpAlph% from the %options%
choice /c %options% /n /cs >nul
    call SET pwd=%pwd%%%options:~%errorlevel%,1%%
    set /p =*<nul
GOTO :EOF


:result2
for /f "tokens=3" %%a in ('reg query hkcu\environment /v result') do set pwd=%%a
    setx result "" >nul
    reg delete hkcu\environment /v result /f >nul 2>&1
:result1
goto :EOF   
::You can delete from here whenever you want.

अपडेट: मुझे सच्ची की पोस्ट सही लगी और मैंने इसमें अपना "पॉप-अप" क्विक जोड़ा।

@Echo Off  
  SetLocal EnableDelayedExpansion
  if "%1"==":HInput" goto :HInput
  set r=r%random%
  start /wait cmd /c call "%~f0" :HInput

For /f "tokens=2,13 delims=, " %%a in (
    'tasklist /v /fo csv /fi "imagename eq cmd.exe"
    ^|findstr /v "Windows\\system32\\cmd.exe"
    ^|findstr "set /p=%r%"'
     ) do (
        set pid=%%a
        set Line=%%b
        set Line=!Line:%r%=!
        set Line=!Line:~,-2!
        )       
taskkill /pid %pid:"=%>nul
  goto :HIEnd


  :HInput
  SetLocal DisableDelayedExpansion
  title Password
  mode con lines=2 cols=30

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 start /min cmd /k mode con lines=1 cols=14 ^&set/p %r%!Line!=&exit
  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

1

मैंने एक खुला स्रोत कार्यक्रम लिखा है, जो editenvमेरे पुराने editv32/ editv64उपयोगिताओं की जगह लेता है :

https://github.com/Bill-Stewart/editenv

--maskinput( -m) विकल्प [*] आप (मुखौटा) टाइप किया गया इनपुट को छिपाने की सुविधा देता है और एक विन्यास चरित्र (डिफ़ॉल्ट चरित्र है *); उदाहरण के लिए:

editenv -m -p "Password: " PWD

--prompt( -p) विकल्प आपको एक इनपुट शीघ्र निर्दिष्ट कर सकते हैं। ऊपर एक Password:प्रांप्ट प्रदर्शित होगा और आप कुछ दर्ज करने की प्रतीक्षा करेंगे। टाइप किए हुए अक्षर दिखाई देंगे *। 1223 के एग्जिट कोड के साथ प्रोग्राम को दबाने Ctrl+ Cसे कार्यक्रम समाप्त हो जाएगा।

डाउनलोड यहाँ है:

https://github.com/Bill-Stewart/editenv/releases

[*] ध्यान दें कि --maskinput( -m) विकल्प सुरक्षित नहीं है - दर्ज स्ट्रिंग को पर्यावरण में सादे-पाठ के रूप में दर्ज किया गया है। यह सुविधा केवल सुविधा के लिए है।


0

यह एक पुराना विषय हो सकता है, लेकिन यदि आप Windows Vista या 7 का उपयोग कर रहे हैं, तो मेरे पास एक समाधान है जो बहुत अच्छा काम करेगा। मैंने इसका एक वीडियो यहां बनाया: http://www.youtube.com/watch?v=mk8uAa6PIFM

बैच फ़ाइल के लिए Pastebin यहाँ है


-1
@echo off
color 0f
MODE CON COLS=132 LINES=50
:start
cls
choice /C ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?.# /N /CS /M Please enter your password to continue. (Valid characters include all letters, numbers, and ! ? .) Press # to submit: 
SET ecode=%ERRORLEVEL%
IF %ecode% EQU 66 goto submit
IF %ecode% EQU 1 SET out=A
IF %ecode% EQU 2 SET out=B
IF %ecode% EQU 3 SET out=C
IF %ecode% EQU 4 SET out=D
IF %ecode% EQU 5 SET out=E
IF %ecode% EQU 6 SET out=F
IF %ecode% EQU 7 SET out=G
IF %ecode% EQU 8 SET out=H
IF %ecode% EQU 9 SET out=I
IF %ecode% EQU 10 SET out=J
IF %ecode% EQU 11 SET out=K
IF %ecode% EQU 12 SET out=L
IF %ecode% EQU 13 SET out=M
IF %ecode% EQU 14 SET out=N
IF %ecode% EQU 15 SET out=O
IF %ecode% EQU 16 SET out=P
IF %ecode% EQU 17 SET out=Q
IF %ecode% EQU 18 SET out=R
IF %ecode% EQU 19 SET out=S
IF %ecode% EQU 20 SET out=T
IF %ecode% EQU 21 SET out=U
IF %ecode% EQU 22 SET out=V
IF %ecode% EQU 23 SET out=W
IF %ecode% EQU 24 SET out=X
IF %ecode% EQU 25 SET out=Y
IF %ecode% EQU 26 SET out=Z
IF %ecode% EQU 27 SET out=a
IF %ecode% EQU 28 SET out=b
IF %ecode% EQU 29 SET out=c
IF %ecode% EQU 30 SET out=d
IF %ecode% EQU 31 SET out=e
IF %ecode% EQU 32 SET out=f
IF %ecode% EQU 33 SET out=g
IF %ecode% EQU 34 SET out=h
IF %ecode% EQU 35 SET out=i
IF %ecode% EQU 36 SET out=j
IF %ecode% EQU 37 SET out=k
IF %ecode% EQU 38 SET out=l
IF %ecode% EQU 39 SET out=m
IF %ecode% EQU 40 SET out=n
IF %ecode% EQU 41 SET out=o
IF %ecode% EQU 42 SET out=p
IF %ecode% EQU 43 SET out=q
IF %ecode% EQU 44 SET out=r
IF %ecode% EQU 45 SET out=s
IF %ecode% EQU 46 SET out=t
IF %ecode% EQU 47 SET out=u
IF %ecode% EQU 48 SET out=v
IF %ecode% EQU 49 SET out=w
IF %ecode% EQU 50 SET out=x
IF %ecode% EQU 51 SET out=y
IF %ecode% EQU 52 SET out=z
IF %ecode% EQU 53 SET out=0
IF %ecode% EQU 54 SET out=1
IF %ecode% EQU 55 SET out=2
IF %ecode% EQU 56 SET out=3
IF %ecode% EQU 57 SET out=4
IF %ecode% EQU 58 SET out=5
IF %ecode% EQU 59 SET out=6
IF %ecode% EQU 60 SET out=7
IF %ecode% EQU 61 SET out=8
IF %ecode% EQU 62 SET out=9
IF %ecode% EQU 63 SET out=!
IF %ecode% EQU 64 SET out=?
IF %ecode% EQU 65 SET out=.
SET code=%out%
SET show=*
:loop
cls
choice /C ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?.# /N /CS /M Please enter your password to continue. (Valid characters include all letters, numbers, and ! ? .) Press # to submit: %code%
SET ecode=%ERRORLEVEL%
IF %ecode% EQU 66 goto submit
IF %ecode% EQU 1 SET out=A
IF %ecode% EQU 2 SET out=B
IF %ecode% EQU 3 SET out=C
IF %ecode% EQU 4 SET out=D
IF %ecode% EQU 5 SET out=E
IF %ecode% EQU 6 SET out=F
IF %ecode% EQU 7 SET out=G
IF %ecode% EQU 8 SET out=H
IF %ecode% EQU 9 SET out=I
IF %ecode% EQU 10 SET out=J
IF %ecode% EQU 11 SET out=K
IF %ecode% EQU 12 SET out=L
IF %ecode% EQU 13 SET out=M
IF %ecode% EQU 14 SET out=N
IF %ecode% EQU 15 SET out=O
IF %ecode% EQU 16 SET out=P
IF %ecode% EQU 17 SET out=Q
IF %ecode% EQU 18 SET out=R
IF %ecode% EQU 19 SET out=S
IF %ecode% EQU 20 SET out=T
IF %ecode% EQU 21 SET out=U
IF %ecode% EQU 22 SET out=V
IF %ecode% EQU 23 SET out=W
IF %ecode% EQU 24 SET out=X
IF %ecode% EQU 25 SET out=Y
IF %ecode% EQU 26 SET out=Z
IF %ecode% EQU 27 SET out=a
IF %ecode% EQU 28 SET out=b
IF %ecode% EQU 29 SET out=c
IF %ecode% EQU 30 SET out=d
IF %ecode% EQU 31 SET out=e
IF %ecode% EQU 32 SET out=f
IF %ecode% EQU 33 SET out=g
IF %ecode% EQU 34 SET out=h
IF %ecode% EQU 35 SET out=i
IF %ecode% EQU 36 SET out=j
IF %ecode% EQU 37 SET out=k
IF %ecode% EQU 38 SET out=l
IF %ecode% EQU 39 SET out=m
IF %ecode% EQU 40 SET out=n
IF %ecode% EQU 41 SET out=o
IF %ecode% EQU 42 SET out=p
IF %ecode% EQU 43 SET out=q
IF %ecode% EQU 44 SET out=r
IF %ecode% EQU 45 SET out=s
IF %ecode% EQU 46 SET out=t
IF %ecode% EQU 47 SET out=u
IF %ecode% EQU 48 SET out=v
IF %ecode% EQU 49 SET out=w
IF %ecode% EQU 50 SET out=x
IF %ecode% EQU 51 SET out=y
IF %ecode% EQU 52 SET out=z
IF %ecode% EQU 53 SET out=0
IF %ecode% EQU 54 SET out=1
IF %ecode% EQU 55 SET out=2
IF %ecode% EQU 56 SET out=3
IF %ecode% EQU 57 SET out=4
IF %ecode% EQU 58 SET out=5
IF %ecode% EQU 59 SET out=6
IF %ecode% EQU 60 SET out=7
IF %ecode% EQU 61 SET out=8
IF %ecode% EQU 62 SET out=9
IF %ecode% EQU 63 SET out=!
IF %ecode% EQU 64 SET out=?
IF %ecode% EQU 65 SET out=.
SET code=%code%%out%
SET show=%show%*
goto loop
:submit
cls
SET password=%code%
IF %password% EQU 0cZrocks! SET result=1
IF ELSE SET result=2
IF %result% EQU 1 echo password correct
IF %result% EQU 2 echo password incorrect
timeout /T 2 /NOBREAK >nul
cls
IF %result% EQU 1 goto end
IF ELSE goto start
:end

आपने कोड की व्याख्या नहीं की है और आपने केवल उस कोड की प्रतिलिपि बनाई है। यह एक अच्छा तरीका नहीं है, जैसा कि आपको स्क्रीन को रिफ्रेश करने की आवश्यकता होती है और पासवर्ड को x वर्ण लंबा होने की आवश्यकता होती है।
Aic17

-1

एक अन्य विकल्प, ब्लोर्बर्ड के समान लाइनों के साथ , कुछ का उपयोग करना है:

SET /P pw=C:\^>

^निकल जाता है >तो यह है कि एक मानक की तरह पासवर्ड मांगना इच्छा नज़र शीघ्र सांत्वना अध्यक्ष एवं प्रबंध निदेशक।


1
प्रश्न यह नहीं है कि पासवर्ड संकेत को कैसे छिपाया / प्रच्छन्न किया जाए लेकिन पासवर्ड को टाइप करते समय दिखाने से रोका जाए। तो यह सवाल का जवाब देने की कोशिश नहीं करता है।
Stephan

न तो मैं जिस उत्तर से जुड़ा था (जो कि लेखन के समय 13 अपवित्र हैं)। मेरा जवाब बस उस पर विस्तार कर रहा है, क्योंकि यह कुछ के लिए एक उपयोगी विकल्प हो सकता है (जैसा कि Blogbeard बाहर है मेरे लिए था)। (मैंने एक टिप्पणी के रूप में जोड़ा होगा, लेकिन साइट मुझे अनुमति नहीं देगी।)
निंबेल

यह एक अच्छा जवाब नहीं है। आप न तो मास्किंग कर रहे हैं और न ही पासवर्ड छिपा रहे हैं। अच्छा समाधान या उत्तर देने के बाद कृपया टिप्पणी करें।
ऐक

-3

मैंने नेट पर सभी क्लंकी समाधानों को एक बैच फ़ाइल में पासवर्ड मास्क करने के तरीके के बारे में पढ़ा, जो कि एक hide.com समाधान का उपयोग करने से और यहां तक ​​कि टेक्स्ट और पृष्ठभूमि को एक ही रंग बनाने वाले भी हैं। Hide.com समाधान सभ्य काम करता है, यह बहुत सुरक्षित नहीं है, और यह 64-बिट विंडोज में काम नहीं करता है। तो वैसे भी, 100% Microsoft उपयोगिताओं का उपयोग करने का एक तरीका है!

सबसे पहले, मुझे अपने उपयोग की व्याख्या करें। मेरे पास लगभग 20 वर्कस्टेशन हैं जो कि विंडोज में ऑटो लॉगऑन करते हैं। उनके पास अपने डेस्कटॉप पर एक शॉर्टकट है - एक नैदानिक ​​अनुप्रयोग के लिए। मशीनों को बंद कर दिया जाता है, वे राइट क्लिक नहीं कर सकते हैं, वे कुछ भी नहीं कर सकते हैं लेकिन अपने डेस्कटॉप पर एक शॉर्टकट तक पहुंच सकते हैं। कभी-कभी किसी तकनीशियन के लिए कुछ डिबग एप्लिकेशन को किक करना, विंडोज़ एक्सप्लोरर को ब्राउज़ करना और लॉग फाइल को ऑटोलॉग उपयोगकर्ता खाते को लॉग किए बिना देखना आवश्यक है।

तो यहाँ है कि मैं क्या किया है।

हालाँकि यह आप की इच्छा है, लेकिन मैंने अपनी दो बैच फ़ाइलों को एक नेटवर्क शेयर पर रखा है जिसे लॉक डाउन कंप्यूटर तक पहुंच है।

मेरा समाधान विंडोज के 1 मुख्य घटक का उपयोग करता है - रनस। क्लाइंट पर रनस के लिए एक शॉर्टकट रखें। FYI करें, मेरे ग्राहकों पर मैंने बेहतर उद्देश्यों के लिए शॉर्टकट का नाम बदला और आइकन बदल दिया।

आपको दो बैच फ़ाइलों को बनाने की आवश्यकता होगी।

मैंने बैच फ़ाइलों को runas.bat और Debug Support.bat नाम दिया है

runas.bat में निम्नलिखित कोड होते हैं:

cls
@echo off
TITLE CHECK CREDENTIALS 
goto menu

:menu
cls
echo.
echo           ....................................
echo            ~Written by Cajun Wonder 4/1/2010~
echo           ....................................
echo.
@set /p un=What is your domain username? 
if "%un%"=="PUT-YOUR-DOMAIN-USERNAME-HERE" goto debugsupport
if not "%un%"=="PUT-YOUR-DOMAIN-USERNAME-HERE" goto noaccess
echo.
:debugsupport
"%SYSTEMROOT%\system32\runas" /netonly /user:PUT-YOUR-DOMAIN-NAME-HERE\%un% "\\PUT-YOUR-NETWORK-SHARE-PATH-HERE\Debug Support.bat"
@echo ACCESS GRANTED! LAUNCHING THE DEBUG UTILITIES....
@ping -n 4 127.0.0.1 > NUL
goto quit
:noaccess
cls
@echo.
@echo.
@echo.
@echo.
@echo   \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
@echo   \\                                   \\
@echo   \\    Insufficient privileges         \\  
@echo   \\                                    \\
@echo   \\      Call Cajun Wonder             \\
@echo   \\                                    \\
@echo   \\              At                    \\
@echo   \\                                    \\
@echo   \\        555-555-5555                \\
@echo   \\                                    \\
@echo   \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
@ping -n 4 127.0.0.1 > NUL
goto quit
@pause
:quit
@exit

आप जितने "% un%" जोड़ सकते हैं और यदि आप उन सभी उपयोगकर्ताओं के लिए "% un%" नहीं हैं, जिन्हें आप एक्सेस देना चाहते हैं। @ मैपिंग सेकंड सेकंड टाइमर बनाने का मेरा सह-तरीका है।

इतना है कि पहले बैच फ़ाइल का ख्याल रखता है - बहुत सरल एह?

यहाँ डिबग Support.bat के लिए कोड है:

cls
@echo off
TITLE SUPPORT UTILITIES
goto menu

:menu
cls
@echo %username%
echo.
echo           .....................................
echo            ~Written by Cajun Wonder 4/1/2010~
echo           .....................................
echo.
echo What do you want to do? 
echo.
echo [1]  Launch notepad
echo.

:choice
set /P C=[Option]? 
if "%C%"=="1" goto notepad
goto choice

:notepad
echo.
@echo starting notepad....
@ping -n 3 127.0.0.1 > NUL
start notepad
cls
goto menu

मैं एक कोडर नहीं हूँ और वास्तव में सिर्फ एक साल पहले बैच स्क्रिप्टिंग में शामिल होना शुरू कर दिया है, और इस तरह के बारे में कि मैं एक बैच फ़ाइल में एक पासवर्ड मास्किंग की खोज के बारे में बहुत बढ़िया है!

मुझे यह सुनने की उम्मीद है कि मेरे अलावा कोई और इसका उपयोग करने में सक्षम है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.