[Python] 纯文本查看 复制代码
import os
import random
import string
import subprocess
def compress_files_with_random_password(input_paths):
log_file = "compression_log.txt"
with open(log_file, 'a') as log:
for path in input_paths:
if os.path.exists(path):
# 生成随机密码
random_password = ''.join(random.choices(string.ascii_letters + string.digits, k=12))
7-Zip是一个免费的开源压缩软件,支持各种压缩格式,例如zip、rar、tar等,并且可以设置密码进行加密。可以使用其中的命令行选项,在脚本中使用随机密码并存储到文本文件中。以下是一些适用于此场景的示例脚本:
1. 批量压缩文件夹,并生成指定长度的随机密码
```
@echo off
setlocal enabledelayedexpansion
set password_length=8
set output_file="passwords.txt"
set archive_format=zip
for /d %%a in (*) do (
set password=
for /l %%i in (1,1,%password_length%) do (
set /a "rand_num=!random! %% 62"
for %%j in (!rand_num!) do (
set "password=!password!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:~%%j,1!"
)
)
echo !password! >> %output_file%
7z a -t%archive_format% -p!password! "%%a.%archive_format%" "%%a\*"
)
```
2. 对单个文件进行加密,并将随机密码输出到命令行窗口
```
@echo off
setlocal enabledelayedexpansion
set password_length=8
set output_file="passwords.txt"
set archive_format=zip
set password=
for /l %%i in (1,1,%password_length%) do (
set /a "rand_num=!random! %% 62"
for %%j in (!rand_num!) do (
set "password=!password!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:~%%j,1!"
)
)
echo !password! >> %output_file%
7z a -t%archive_format% -p!password! "output.%archive_format%" "input_file"
```
以上脚本可以使用Windows的命令行提示符(cmd.exe)来运行,也可以嵌入到批处理文件中进行多个文件的压缩。请注意,这些脚本只是示例代码,可能需要根据实际情况进行修改和调整。