2013-01-31 42 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是密碼你希望你的用戶輸入。

相關問題