아카이브에서 폴더를 추출하는 7-Zip 명령 줄


16

내가 사용하고 7 - 우편 추출하는 명령 줄을 우편 라는 아카이브 abc.zip그 안에 세 개의 텍스트 파일을 '지퍼'라는 폴더 (과 아카이브입니다 a.txt, b.txt등을 c.txt).

내 문제는 다음 명령으로 추출 할 때입니다.

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

7 - 우편 번호를 추출 모든하지만, 그것은 단지 추출물, 폴더 '지퍼'추출하지 않는 a.txt, b.txt그리고 c.txt(이라고 출력 대상과 풋 그들을 C:\abc).

7-Zip이 실제 폴더를 추출하도록하려면 어떻게해야합니까?

답변:



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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.