批处理脚本无法正常工作

时间:2011-06-27 17:36:40

标签: batch-file

我创建了一个批处理脚本来破解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 个答案:

答案 0 :(得分:1)

使用

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

:Crack
set pass=%1

for /f对输入进行标记,默认情况下用空格分隔标记。如果你将它们传递给子程序,你需要引用参数。

另一种选择是不引用for行但引用set pass="%*"。无论哪种方式,你都需要报价。