2016-09-10 2 views
-2

Кто-нибудь знает, почему это не работаеткак использовать предлагающий Funtion в пакете

@echo off 
set /p "%pass%=enter password>" 
if exist "%pass%"="#####" (goto :passed) 
exit 
:passed 
echo "it worked" 
+1

Удалите котировки и% от переменной в строке 'set/p' и повторите попытку. В будущем научитесь быть более конкретными здесь. * Это не работает * является бесполезным описанием проблемы, если вы не объясните, что означает * не работает *. –

+3

@KenWhite, ничего плохого в том, что у вас есть кавычки. Они являются предпочтительным методом в моей книге лучших практик. – Squashman

+2

Параметр 'EXIST' для команды' IF' предназначен для проверки наличия файла. Это верно в файле HELP. Возможно, вы подумывали использовать опцию 'DEFINED' с командой' IF', но даже это не нужно использовать. Просто удалите 'exist' и используйте два знака равенства в документации по командам' IF'. – Squashman

ответ

1

что-то еще вроде этого:

@echo off 
set /p "pass=enter password> " 
If "%pass%"=="#####" (goto :passed) 
exit 
:passed 
echo "it worked" 
0

Я не уверен, что вы пытаетесь сделать

если вы пытаетесь проверить, если пароль «####» и аутентификации используют эту

@echo off 

SET /p pass="enter password>" REM change this to get it to work 

IF "%pass%"=="####" ( 
GOTO passed 

) ELSE (
EXIT 
) 

:passed 
echo "it worked" 

вы не установка переменной Pass здесь,

, если вы хотите проверить файл с именем #### и запуском: пройденный, если файл существует, то использовать этот код хотя я думаю, что это не что вы пытались

@echo off 

SET /p %pass%="enter password>" REM change this to get it working 
IF EXIST %pass%="####" (goto :passed) 
EXIT 

:passed 
echo "it worked" 
0

Если вы хотите также скрыть ввод пароля с *******

вы можете попробовать этот пакетный файл:

@echo off 
Title %~n0 by Hackoo 2016 
Mode 50,5 & Color 0E 
:CreatePassword 
cls & Color 0E 
setlocal DisableDelayedExpansion 
Call :InputPassword "Please choose your password" pass1 
Call :InputPassword "Please confirm your password" pass2 
setlocal EnableDelayedExpansion 
If !pass1!==!pass2! (Goto:Good) Else (Goto:Bad) 
::*********************************** 
:InputPassword 
Cls 
echo. 
echo. 
set "psCommand=powershell -Command "$pword = read-host '%1' -AsSecureString ;^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword);^
     [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"" 
     for /f "usebackq delims=" %%p in (`%psCommand%`) do set %2=%%p 
Goto :eof 
::***********************************   
:Good 
Color 0B     
Cls 
echo. 
echo      Good password 
::TimeOut /T 2 /NoBreak>nul 
echo Your password stored as : "!Pass2!" without quotes 
pause>nul 
Goto :Eof 
::*********************************** 
:Bad 
Color 0C 
Cls 
echo. 
echo    Wrong password try again 
::TimeOut /T 2 /NoBreak>nul 
echo Press any key to retry again 
pause>nul 
Goto :CreatePassword 
::*********************************** 
Смежные вопросы