2016-06-27 7 views
1

폴더를 반복해야하고 각 zip 파일에 대해 이름을 지정하여 압축을 풀어야합니다. 즉, 해당 test.zip 다음 테스트 폴더로 추출해야합니다. 마찬가지로 그것은 내 폴더와 하위 폴더를 반복하고 사물을 추출해야합니다. 아래 코드를 작성했지만 zip의 이름은 추출하지 않습니다. 제발 조언.zip과 이름이 같은 winrar를 사용하여 폴더의 모든 zip 파일을 추출하는 방법은 무엇입니까?

cd %CD%\Setups 
for /r %%i in ("*.zip") do (
    echo "%%~fi" 
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a -afzip "%%~dpi" "%%~fi" 
    echo came after unzipping 
    del /S /Q "%%~fi" 
) 
exit \b 
+0

'% ~ dpi' 대신'% ~ dpni'는 어떨까요? – aschipfl

+0

% ~ dpni가 추출해야하는 현재 위치를 찾고 있습니다. 하지만 ~ % fi는 우편 번호에 생성해야하는 폴더 이름을 제공하지 않습니다. 즉, test.zip 파일이 테스트 폴더로 추출되지 않습니다. – mayooran

+0

'%% ~ dpi'는'.zip' 파일의 컨테이너를 가리키며'%% ~ ni'는'.zip' 파일의 기본 이름입니다 (예를 들어,'test'). 그래서'%% ~ dpni '추출 할 폴더를 가리 킵니다. '%% ~ fi'가'.zip' 파일을 가리키고 있습니다 ... – aschipfl

답변

1

Winrar.exe와 zip 파일을 추출하기위한 구문은 같다 :

[경로 \ winrar.exe] × [ZIP 파일 경로] 파일이 추출. 모든 파일] [경로 폴더를 실행할이 스위치 -ibck을 원하는 경우] 13시 35분

@ 28/06/2016에

@echo off 
set winrar=%ProgramFiles%\WinRAR\WinRAR.exe 
CD /D %CD%\Setups 
for /f "delims=" %%i in ('Dir /b *.zip') Do ("%Winrar%" x "%%~fi" "%%~dpni\") 
pause 

편집 또한 추가 할 수있는 추출 백그라운드에서의 WinRAR :

@echo off 
set winrar=%ProgramFiles%\WinRAR\WinRAR.exe 
CD /D %CD%\Setups 
for /r %%i in ("*.zip") Do ("%Winrar%" x -ibck "%%~fi" "%%~dpni\") 
pause 
+0

for 루프는 지정한 방식으로 사용될 때 "파일을 찾을 수 없음"이라고 말합니다. 그래서 나는 "for/r %% i for ("* .zip ")를 사용했는데 제대로 작동합니다. 당신이 지정한 for 루프가 작동하지 않는 이유를 알 수 있습니까? ( – mayooran

+0

@mayooran 나는 당신에게 글을 올리기 전에 스크립트를 테스트했고 그것은 매력처럼 작동합니다 :) set winrar = % ProgramFiles % \ WinRAR \ winrar ='WinRAR.exe'는 아마 당신을 위해 다른 것입니다.'set winrar = % ProgramFiles (x86) % \ WinRAR \ WinRAR.exe' – Hackoo

+0

실제로 for 루프에서 온 것은 아닙니다. 그 파일을 던지고 있던 줄을 찾지 못하면 줄 단위로 제거했습니다. 다시 확인해 볼게. 감사합니다 :) – mayooran