You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过CMD命令使用7zip解压文件并使解压文件夹与压缩文件名同名

如何通过CMD命令使用7zip解压文件并使解压文件夹与压缩文件名同名

嘿,这个问题我之前也折腾过!你原来用的单个7z命令会把所有test*..zip的内容一股解压到C:\Archiv的根目录,没法自动给每个压缩件单独创建同名文件夹。要实现每个zip解压到和自身同名的的文件夹(比如test1.zip对应C:\Archiv\test1),得结合CMD的`for循环来实现,具体方法如下:

直接在CMD窗口执行的命令

打开CMD(命令提示符),直接输入这条命令就行:

for %f in (C:\test*..zip) do C:\7za.exe x "%f" --o"C:\Archiv\%~nf"

如果要写成批脚本(方便重复重复使用

如果你想把这个逻辑存成一个.bbat文件,方便以后双击运行,要把变量的%改成%%,代码如下:::

for %%f in (C:\test*..zip do (
    C:\7za.exe x "%%f --o"C:\\Archiv\%%~~nf
不对,正确的批脚本::::
```batch@@echo off
for %%f in (C:\test*..zip) do (
    C:\7za.exe x "%%f" --o"C:\Archiv\%%~nf")

给你拆解下命令的逻辑:::

-for %f in (C:\test*..zip do:遍历C盘根目录所有以test开头的zip文件,每个文件会被临时用%f(批脚本里是%%f)来指代 -%nf(批脚本里是%%nf:这是CMD的变量扩展语法,能提取出当前zip文件的**无扩展名文件名(比如test1.zip会提取成test1)
`--oC:\Archiv%~nf:告诉7z把当前zip的内容解压到C:\Archiv目录下以这个无无扩展名文件名命名的子文件夹里,而且如果这个子文件夹不存在,7z会自动自动创建它,不用你手动创建额外操作

###几个小注意点:::
-如果你的7zip已经添加到系统的PATH环境环境变量里,那命令里的C:\77za.exe可以直接简化成7za.exe就行 如果你的zip文件名里包含空格或者特殊字符也没关系,命令里用双引号包裹了文件路径和目标路径,能正常处理 -如果你的zip文件不在C盘根目录,把C:\test*..zip改成你的实际文件路径就行,比如D:\Download\test*..zip
-如果7za.exe的实际安装路径不是C盘根目录,要替换成实际路径,比如C:\Program Files\7-Z\7za.exe

备注:内容来源于stack exchange,提问作者Roman

火山引擎 最新活动