.bat에서 생성된 여러 개의 비밀번호를 .txt 파일로 인쇄

.bat에서 생성된 여러 개의 비밀번호를 .txt 파일로 인쇄

이 사이트에서 "CMD로 비밀번호를 생성하는 방법"을 검색한 후 매우 유용한 몇 가지 예를 발견했습니다. 그런 다음 한 번에 하나 이상의 비밀번호를 인쇄할 수 있기를 원했고(누가 하루 종일 클릭하고 싶어할지) 정의된 시간 동안 생성기 코드를 실행할 수 있는 코드를 찾았습니다. 다음에 하고 싶은 일은 생성된 모든 비밀번호를 하나의 .txt 파일로 인쇄해 보는 것입니다. 이를 위해서는 "command > [drive:\path*.txt]"를 사용해야 한다는 것을 알고 있지만 방법은 모르겠습니다 :/. 생성기와 루프 코드를 결합한 후 다음과 같은 결과를 얻었지만 파일에는 하나의 비밀번호만 인쇄됩니다. 다른 하나가 생성되면 이전 것이 대체됩니다. 도움이 필요하세요? :디

@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

관련 정보