我创建了一个批处理脚本来破解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
有人可以帮我解决这个问题吗?谢谢。
答案 0 :(得分:1)
使用
for /f "delims=" %%i in (passlist.txt) do call :Crack "%%i"
和
:Crack
set pass=%1
for /f
对输入进行标记,默认情况下用空格分隔标记。如果你将它们传递给子程序,你需要引用参数。
另一种选择是不引用for
行但引用set pass="%*"
。无论哪种方式,你都需要报价。