
큰 폴더 트리가 있습니다. A, B, C 등으로 Z까지 명명된 폴더가 있다고 가정해 보겠습니다. 각 폴더 안에는 여러 개의 zip 파일이 있습니다.
폴더의 모든 zip을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 7zip을 선택하고 "*"로 추출을 선택하면 완벽하게 작동합니다. 예를 들어 폴더 A에 있는 zip 파일을 사용하여 이 작업을 수행하면 A에는 해당 zip 파일의 내용이 포함된 각 zip 파일에 대한 폴더가 포함됩니다.
내가 원하는 것은 모든 폴더(AZ)에 있는 모든 zip 파일을 검색하고 이 작업을 한 번에 수행하여 각 폴더(AZ)가 포함된 모든 zip 파일에 대한 폴더로 끝나는 것입니다.
실제로 일어나는 일은 7zip이 모든 것을 첫 번째 폴더(예: A)에 추출한다는 것입니다.
누구든지 이 작업을 수행하는 방법을 알고 있습니까?
답변1
Windows 명령줄을 사용할 수 있습니다. Windows 로고를 누르고 를 입력한 후 cmd
을 누르세요 ENTER. 그런 다음 및 를 입력하여 zip 파일이 있는 하위 디렉터리가 포함된 디렉터리로 이동합니다. cd c:\my\example\dir
다른 ENTER드라이브에 있는 경우 예를 들어 i:
및 다시 입력하여 ENTER해당 드라이브로 전환합니다. 이제 커서 앞에 올바른 경로가 표시됩니다. 그런 다음 입력
for /F "usebackq" %f in (`dir /b/a:d`) do @echo %f
그리고 ENTER. dir /b/a:d
디렉터리당 하나의 행을 반환합니다. 이러한 각 행에 대해 뒤에 있는 명령이 do
실행됩니다. @echo %f
은 검색된 이름을 화면에 간단히 기록하므로 를 제거한 경우 실행될 내용을 안전하게 제어할 수 있습니다 @echo
. 귀하의 경우에는 다음과 같은 것이 필요합니다
for /F "usebackq" %f in (`dir /b/a:d`) do C:\APPS\7-Zip\7z.exe x .\%f\*.zip -o%f
각 하위 디렉터리에 대해 7zip 명령줄 실행 파일을 호출하고(시스템 경로를 조정해야 함 C:\APPS\7-Zip\
) 전체 경로를 포함한 모든 zip 파일을 현재 하위 디렉터리로 추출합니다. 7zip 구문에 대한 자세한 내용은 다음에서 확인할 수 있습니다.https://www.dotnetperls.com/7-zip-examples
이 작업을 반복해서 수행하는 경우 간단한.박쥐/.cmd 파일을 위에서 언급한 Commando와 함께 사용하지만 작동하려면 %를 %%로 바꿔야 할 가능성이 높습니다.
답변2
제가 원하는 대로 작동되도록 했습니다. 올바른 명령은 다음과 같습니다:
for /F "tokens=*" %%g in ('dir /b/a:d') do "C:\Program Files\7-Zip\7z.exe" x ".\%%g\*.zip" -o"%g\*" -aos
답변3
Windows를 사용하는 경우 폴더 A, B, C & D가 있는 루트 폴더로 이동한 다음 검색 *.zip
하거나 *.rar
Windows 검색에서 모든 zip을 선택/강조 표시하고 7-zip을 사용하여 원하는 작업을 수행합니다. 돌고래(리눅스)에서도 잘 작동합니다.