找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 7547|回复: 4

[文件操作] 使用7za命令行将指定路径的zip文件转换为7z加密的文件

[复制链接]
发表于 2025-2-19 17:34:29 | 显示全部楼层 |阅读模式
我有一个zip文件, 例如下面路径的文件,
我想把这个zip文件使用7za命令行转换为7z加密(同时加密文件名)的压缩文件, 密码是文件名的前6位, 应该怎样写批处理?
注意: 原zip压缩文件中的文件结构要保持不变, 说简单一点就是用文件名的前6位做密码,转换为7z类型的加密的压缩文件

$zipPath = "C:\Users\Administrator\Desktop\ab.cdefg_25.05.03.zip"
 楼主| 发表于 2025-2-19 20:36:22 | 显示全部楼层
现在的ai还是太弱智了, 试了快上百轮了, 就是不行, 下面代码能转成, 但是用密码打不开, 哎

  1. function Convert-ZipTo7z {
  2.     param (
  3.         [string]$zipPath
  4.     )

  5.     # 检查 zip 文件是否存在
  6.     if (-Not (Test-Path $zipPath)) {
  7.         Write-Host "文件 $zipPath 不存在"
  8.         exit 1
  9.     }

  10.     # 获取文件名(不包括路径和扩展名)
  11.     $fileName = [System.IO.Path]::GetFileNameWithoutExtension($zipPath)

  12.     # 获取文件名前 6 位作为密码
  13.     $password = $fileName.Substring(0, 6)

  14.     # 设置输出的 7z 文件路径
  15.     $output7zPath = [System.IO.Path]::ChangeExtension($zipPath, ".7z")

  16.     # 创建一个临时目录来解压缩 zip 文件
  17.     $tempDir = New-Item -ItemType Directory -Path ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()))

  18.     try {
  19.         # 解压缩 zip 文件到临时目录
  20.         & 7za x $zipPath -o"$tempDir" | Out-Null

  21.         # 使用 7za 命令行工具将解压后的文件压缩为 7z 加密文件,并加密文件名
  22.         & 7za a -t7z -p$password -mhe=on $output7zPath "$tempDir\*" | Out-Null

  23.         Write-Host "转换完成: $output7zPath"
  24.     }
  25.     finally {
  26.         # 删除临时目录
  27.         Remove-Item -Recurse -Force $tempDir
  28.     }

  29.     # 返回转换后的 7z 文件路径
  30.     return $output7zPath
  31. }

  32. # 调用函数并传递 zip 文件的路径作为参数
  33. $zipPath = "C:\Users\Administrator\Desktop\ab.cdef_25.05.03.zip"
  34. $output7zPath = Convert-ZipTo7z -zipPath $zipPath

  35. Write-Host "输出文件路径: $output7zPath"
复制代码
 楼主| 发表于 2025-2-19 21:00:27 | 显示全部楼层
解决了, 加上引号就行了

-p"$password"
发表于 2025-2-19 21:34:41 | 显示全部楼层

  1. 7z u "C:\Users\Administrator\Desktop\ab.cdefg_25.05.03.zip" -p123456 -u- -up1!new_new.7z "*.@@#1i($$)i1#@@"
复制代码
 楼主| 发表于 2025-2-19 21:47:33 | 显示全部楼层
回复 4# Five66


    不行, 我试了, 新生成的7z文件没有被加密
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 08:46 , Processed in 0.017947 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表