답변:
먼저 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 (
현재 폴더의 모든
rar
및zip
파일에 대해 다음을 수행하십시오.
"C:\Program Files\7-zip\7z.exe" x "%%X"
파일에서 7-zip을 실행하십시오.
%%X
일부 파일 이름에는 공백이 있기 때문에 따옴표가 필요 합니다.
popd
이전에 메모리에 저장 한 이전 디렉토리로 돌아갑니다.
이것이 누군가에게 유용하기를 바랍니다.
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 파일이 스크립트와 동일한 레벨에 있지 않은지 확인하십시오. 그들은 한 수준 아래로 있어야합니다.
이 의견이 누군가에게 도움이 되었기를 바랍니다.
당신이 실행하는 경우 작업 위의 대답은, 그러나, Windows 64-bit
그리고 7-Zip 32-bit
, 올바른 경로는 C:\Program Files (x86)\7-Zip
7 우편을 위해. 아래는 나를 위해 일한 스크립트입니다.
@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
)