7-Zip命令行从存档中提取文件夹


16

我使用的是7-Zip的命令行提取ZIP称为存档abc.zip这与所谓“拉链”三个文本文件夹它(存档a.txtb.txtc.txt)。

我的问题是当我使用以下命令提取它时:

7z e C:\abc\abc.zip -y oC:\abc

7-Zip的提取物的一切,但它不解压文件夹“拉链”,它只是提取物a.txtb.txtc.txt并把它们在输出目的地(即C:\abc)。

我怎样才能使7-Zip仅提取实际文件夹?

Answers:



9

的前面可能应该有一个连字符o

-oC:\abc

还考虑-r递归选项。


0

我不得不解决一个类似的问题。这是我使用的代码。该脚本接收一个文件夹并解压缩所有zip(然后将其删除)。诀窍是将数据解压缩到特殊文件夹中。有点前卫,但有效...

@echo off

set SEVEN_ZIP_HOME=C:\Program Files\7-Zip

set TEMPDIR=temp

set WORKING_DIR="%1"

if "%WORKING_DIR%"==""  set WORKING_DIR=%~dp0

cd /d %WORKING_DIR%

if not exist %TEMPDIR% md %TEMPDIR%

for %%i in ("%WORKING_DIR%\*.zip") do call :unzipAndDelete "%%i"

rd %TEMPDIR%

goto :end

:unzipAndDelete 

set ZIP_FILE=%~1

call :extractName %ZIP_FILE%

call "%SEVEN_ZIP_HOME%\7z.exe" e "%ZIP_FILE%" -o./%TEMPDIR%

copy .\%TEMPDIR%\*.* %FILENAME%.log

del .\%TEMPDIR%\*.* /q

del "%ZIP_FILE%"

goto :end

:extractName 

set FILENAME=%~n1
goto :end


:end
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.