이 폴더의 하위 디렉토리에있는 모든 아카이브를 어떻게 추출합니까?


18

폴더의 하위 디렉토리에 포함 된 여러 아카이브를 추출하여 아카이브가있는 폴더로 결과를 다시 출력하는 방법

답변:


22

먼저 7-zip을 설치하십시오 .

bat내부에 아카이브가있는 많은 서브 디렉토리를 포함하는 디렉토리의 루트에 파일을 작성하십시오 . 그런 다음 다음을 붙여 넣습니다.

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.rar *.zip) DO (
            "C:\Program Files\7-zip\7z.exe" x "%%X"
        )
    popd
)

방망이를 시작하면 모든 rar / zip이 포함 된 폴더로 추출됩니다.

어떻게 작동합니까?

FOR / D / r %% F in ( "*") DO (

For 루프는 현재 디렉토리의 모든 폴더를 반복하고 경로를 변수에 넣습니다 %%F.

% CD % 푸시

현재 디렉토리를 메모리에 넣습니다.

cd %% F

변수의 폴더를 %%F현재 디렉토리로 설정하십시오 .

FOR %%X in (*.rar *.zip) DO (

현재 폴더의 모든 rarzip파일에 대해 다음을 수행하십시오.

"C:\Program Files\7-zip\7z.exe" x "%%X"

파일에서 7-zip을 실행하십시오. %%X일부 파일 이름에는 공백이 있기 때문에 따옴표가 필요 합니다.

popd

이전에 메모리에 저장 한 이전 디렉토리로 돌아갑니다.

이것이 누군가에게 유용하기를 바랍니다.


3

Windows Vista에서 스크립트를 실행하는 데 문제가있었습니다. 코드를 실행했을 때 아무 일도 일어나지 않았습니다. 스크립트를 실행하려면 관리자 여야했습니다. .bat 파일을 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"을 실행하면 어떤 이유로 든 system32 폴더에서 시작 되었기 때문에 작동하지 않았습니다 (정확하게 기억하는 경우). 이 문제를 해결하려면 Windows 환경 변수 (여기에 설명 : Windows 환경 변수 ) % ~ dp0을 사용하여 스크립트가 실행 된 디렉토리로 다시 전환하십시오.

@echo on
cd %~dp0

FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
    FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x %%X
    )
popd
)

* .rar 또는 * .zip 파일이 스크립트와 동일한 레벨에 있지 않은지 확인하십시오. 그들은 한 수준 아래로 있어야합니다.

이 의견이 누군가에게 도움이 되었기를 바랍니다.


이것은 나를 위해 잘 작동했습니다. 64 비트 Win 7을 실행하면서 "C : \ Program Files"에서 "C : \ Program Files (x86)"경로를 변경해야했습니다.
Contango

1
find . -name "*.zip" |  while read filename; do unzip -o -d "`dirname "$filename"`" "$filename"; done;

현재 디렉토리에서 재귀 검색을 시작하고 .zip으로 끝나는 모든 파일을 찾은 다음 루프로 파이프합니다. 찾은 모든 파일에 대해 파일의 출력을 파일의 디렉토리로 분류하여 파일에서 unzip 명령을 실행합니다.


1

당신이 실행하는 경우 작업 위의 대답은, 그러나, Windows 64-bit그리고 7-Zip 32-bit, 올바른 경로는 C:\Program Files (x86)\7-Zip7 우편을 위해. 아래는 나를 위해 일한 스크립트입니다.

@echo on
cd %~dp0

FOR /D /r %%F in ("*") DO ( pushd %CD% cd %%F
    FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files (x86)\7-zip\7z.exe" x %%X
    )
    popd
)

그러나 64 비트 버전의 7zip을 사용하는 경우 올바른 대답은 "C : \ Program Files \ 7-zip \ 7z.exe"입니다.
Rohn Adams
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.