在本网站搜索“如何使用 CMD 生成密码”后,我发现了一些非常有用的示例。然后,我想能够一次打印多个密码(谁会想整天点击它),我找到了一些代码,它可以运行生成器代码一定次数。接下来我想做的是尝试在一个 .txt 文件中打印所有生成的密码。我知道你必须使用“命令 > [drive:\path*.txt]”来实现这一点,但我不知道怎么做 :/。将生成器和循环代码组合后,我得到了类似这样的结果,但它只在文件中打印一个密码。当生成另一个密码时,旧密码将被替换。有什么帮助吗?:D
@echo off
set execute counter=0
:loop
(@Echo off
rem 16 stings pwd
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
set pwd=
FOR /L %%b IN (0, 1, 16) DO (
SET /A rnd_num=!RANDOM! * 62 / 32768 + 1
for /F %%c in ('echo %%alfanum:~!rnd_num!^,1%%') do set pwd=!pwd!%%c
)
echo pwd=%pwd% > D:\password.txt
) :: This here between the () is the on line password generator
set /a executecounter=%executecounter%+1
if "%executecounter%"=="30" goto done
goto loop
:done
echo Complete!
pause
答案1
你很接近了。
> 操作符的意思是:写入文本文件。如果文本文件已经存在,则覆盖。如果不存在,则创建一个新文件。这将撤消您之前的密码。
您需要的是 >> 操作符。它的意思是:写入文本文件。如果文本文件已经存在,则将其附加到其中。如果不存在,则创建一个新文件。
因此更换
echo pwd=%pwd% > D:\password.txt
和:
echo pwd=%pwd% >> D:\password.txt
如果您想在同一文件中创建一个空白行,请添加:echo。>> D:\password.txt
您的输出将是:
pwd=randompass
pwd=randompass
如果您想存储除密码之外的更多信息,这很有用,例如:
set foruser /p "for which user is this?"
echo -------------- >> d:\password.txt
echo Password generated at %date% %time%. >> d:\password.txt
echo Password was made for user: %foruser%
echo pwd=randompass >> d:\password.txt
echo -------------- >> d:\password.txt
echo. >> d:\password.txt