2014-01-19 82 views
0

我有兩個文件,shell.batkey.batshell.bat調用key.bat和一個名爲etc的目錄中的一些其他文件。 key.bat向用戶請求ESSID,找到etctype的相應文件,其內容是所請求的ESSID的關鍵字。之後,再次調用shell.bat,並在調用文件key.bat的內容後出現shell提示符server:wifi$。有想法該怎麼解決這個嗎?批處理新行問題

shell.bathttp://www.mediafire.com/view/skrs8e728023f6f/shell.bat

@echo off 
set /p cmd=server:wifi$ 
if exist programs\%cmd%.bat goto cmd 
goto fail 

:cmd 
call programs\%cmd%.bat 
call shell.bat 

:fail 
echo Command "%cmd%" not found. 
call shell.bat 

key.bathttp://www.mediafire.com/view/rm1v6czi3f4844c/key.bat

@echo off 
set /p essid=ESSID: 
if exist etc\%essid%.txt goto key 
goto fail 

:fail 
echo Key does not exist. 
echo Add key with "mkkey". 
goto :eof 

:key 
type etc\%essid%.txt 
+0

您需要發佈一些代碼,以便我們可以看到它是如何工作的。不要只發布鏈接到文件。 – unclemeat

+1

@Smik遊戲,你說'shell.bat'正在調用'key.bat',但在第一個例子中看起來'shell.bat'正在調用'shell.bat'。 –

+0

%cmd%.bat文件在做什麼?他們是否在調用key.bat?因爲key.bat不是從shell.bat調用的。 – unclemeat

回答

1

試試這個修改,然後告訴我們,如果還存在一個問題,進一步描述。

shell.bat

@echo off 
set "cmd=" 
set /p cmd=server:wifi$ 
if exist "programs\%cmd%.bat" goto cmd 
goto fail 

:cmd 
call "programs\%cmd%.bat" 
%0 

:fail 
echo Command "%cmd%" not found. 
%0 

Key.bat

@echo off 
set "essid=" 
set /p essid=ESSID: 
if exist "etc\%essid%.txt" goto key 
goto fail 

:fail 
echo Key does not exist. 
echo Add key with "mkkey". 
goto :eof 

:key 
type "etc\%essid%.txt" 
+0

謝謝你理解我的問題。這固定完美。 –

+0

很高興幫助。我又添加了一組雙引號來支持長文件名。 – foxidrive