2011-06-27 135 views
0

我創建了一個批處理腳本來破解一個TC卷,給出一個由換行符分隔的已知密碼的文本列表。不幸的是它不能正常工作。當它每行下行時,它不會讀取空格。如果我有一個條目「HelloWorld」,它會讀取「Helloworld」,但是如果條目是「Hello World」,那麼它只會讀取「Hello」。代碼:批處理腳本無法正常工作

@echo off 
echo "--- Starting ---" 

set drive=V 
set tcexe="C:\Program Files\TrueCrypt\TrueCrypt.exe" 
set tcvol="C:\Users\Ryan\Desktop\rawr.tar.gz" 

:Start 
for /f %%i in (passlist.txt) do call :Crack %%i 

:Crack 
set pass=%1 
echo Trying %pass%... 
%tcexe% /q /l %drive% /v %tcvol% /p %pass% /s /e /b 
if exist %drive%: goto :End 
goto :eof 

:End 
echo "TC volume cracked!" 
echo The password is %pass% 
pause 

有人可以解決這個問題給我嗎?謝謝。

回答

1

使用

for /f "delims=" %%i in (passlist.txt) do call :Crack "%%i" 

:Crack 
set pass=%1 

for /f不令牌化輸入和默認使用空格分隔令牌。如果你將這些傳遞給子程序,你需要引用這個參數。

另一種選擇是不在for行中引用,而是在set pass="%*"中引用。無論哪種方式,你需要報價。