2013-01-31 44 views
0

我试图设置带有密码的代码,其中不同的密码将带您到不同的目录。所有的目录都在同一个.bat文件中,但我想用另一个.bat来调用密码并带我到目录。我不知道该怎么做,并且很难找到主题搜索。在批处理中使用带有IF条件的CALL命令

我的代码如下所示:

@echo off 
:takemeto 
cls 
echo Enter Password 
set /p name= 
call C:\Users\Username\Desktop\Batch files\passwords.bat 

:password1 
cls 
echo You have chosen Password 1 

:password2 
cls 
echo You have chosen Password 2 

的呼叫是找到并使用我的文件与密码。该文件有密码和目录,它看起来像这样:

:Passwords 
if "%name%" == "password1" goto password1 
if "%name%" == "password2" goto password2 
/end 

希望这是明确的, 谢谢,罗布

+1

当你运行你的代码时会发生什么?你有错误吗? _你知道这些密码将以纯文本形式存储_ –

回答

0

让你的外部批处理脚本回声输出。用for /f循环捕获它。

@echo off 
setlocal 
set extbat=C:\Users\Username\Desktop\Batch files\passwords.bat 

:takemeto 
cls 
set /p name="Enter Password: " 
for /f %%I in ('"%extbat%" %name%') do goto %%I 

:invalid 
echo Invalid password entered. 
set name= 
pause 
goto takemeto 

:password1 
cls 
echo You have chosen Password 1 
goto :EOF 

:password2 
cls 
echo You have chosen Password 2 
goto :EOF 

例如C:\Users\Username\Desktop\Batch files\passwords.bat

@echo off 
if #%1==# (
    echo takemeto 
) else if #%1==#correct1 (
    echo password1 
) else if #%1==#correct2 (
    echo password2 
) else echo invalid 

...其中correct1correct2是密码你希望你的用户输入。

相关问题