将多个.bat生成的密码打印到.txt文件中

将多个.bat生成的密码打印到.txt文件中

在本网站搜索“如何使用 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

相关内容