In nhiều mật khẩu .bat được tạo thành tệp .txt


1

Sau khi tìm kiếm trang web này để biết "cách tạo mật khẩu với CMD", tôi đã tìm thấy một số ví dụ rất hữu ích. Sau đó, tôi muốn có thể in nhiều mật khẩu cùng một lúc (ai muốn nhấp cả ngày vào đó) và tôi đã tìm thấy một số mã có thể chạy mã trình tạo trong một số thời gian xác định. Điều tôi muốn làm tiếp theo là thử và in tất cả các mật khẩu được tạo trong một tệp .txt duy nhất. Tôi biết bạn phải sử dụng "lệnh> [drive: \ path * .txt]" cho điều đó nhưng tôi không biết làm thế nào: /. Sau khi tôi kết hợp trình tạo và mã vòng lặp, tôi nhận được một cái gì đó như thế này, nhưng nó chỉ in một mật khẩu trong tệp. Khi cái khác được tạo ra, cái cũ được thay thế. Có ai giúp đỡ không? :CƯỜI MỞ MIỆNG

@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

Câu trả lời:


1

Bạn đang rất gần.

Toán tử> có nghĩa là: ghi vào tệp văn bản. Nếu tệp văn bản đã tồn tại, ghi đè. Nếu không, tạo một tập tin mới. Điều này sẽ hoàn tác mật khẩu trước đó của bạn.

Toán tử >> là những gì bạn cần thay thế. Nó có nghĩa là: viết vào một tệp văn bản. Nếu textfile đã tồn tại, hãy thêm vào nó. Nếu không, tạo một tập tin mới.

Vì vậy, thay thế

echo pwd=%pwd% > D:\password.txt

với:

echo pwd=%pwd% >> D:\password.txt

Nếu bạn muốn tạo một dòng trống trong cùng một tệp, hãy thêm: echo. >> D: \ password.txt

Đầu ra của bạn sau đó sẽ là:

pwd=randompass

pwd=randompass

Điều này hữu ích nếu bạn muốn lưu trữ thêm thông tin bên cạnh mật khẩu, ví dụ:

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

Không làm việc. Nó chỉ mở dấu nhắc và nó đóng (chỉ chạy một lần trình tạo) và nếu tôi mở lại, nó sẽ không tạo ra một cái mới. Tôi cần nó để in mật khẩu 10, 40, 90 (bao giờ là số tôi khác) trong cùng một tệp :(.
Unix

Vui lòng kiểm tra mã của bạn. Tôi đã mã hóa rất nhiều với các tập tin .bat và tôi biết điều này bằng trái tim. nó luôn làm việc cho tôi, vì vậy nếu nó không hoạt động, chắc chắn sẽ có điều gì đó không ổn.
LPChip

Tôi đã làm như bạn đã nói ... @echo tắt set exec counter = 0: loop (@Echo off rem 16 stops ) DO (SET / A rnd_num =! RANDOM! * 62/32768 + 1 cho / F %% c trong ('echo %% alfanum: ~! Rnd_num! ^, 1 %%') không đặt pwd =! Pwd!% % c) echo pwd =% pwd% >> D: \ password.txt) :: Đây là giữa () là bộ tạo mật khẩu trực tuyến được đặt / một bộ thực thi =% bộ thực thi% + 1 nếu "% bộ thực thi%" == "30" goto loop goto loop: xong echo Hoàn thành! tạm dừng
Unix

Bạn có thể nhập tạm dừng ở cuối tệp bó của bạn và chạy nó, sau đó kiểm tra đầu ra không? bất kỳ lỗi script nào sẽ hiển thị tại thời điểm đó.
LPChip

Ngoài ra, ở trên cùng, bạn viết bộ thực thi counter = 0. Không gian đó nên biến mất.
LPChip
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.