7zip 명령줄을 사용하여 여러 압축 파일을 업데이트하는 방법은 무엇입니까?

7zip 명령줄을 사용하여 여러 압축 파일을 업데이트하는 방법은 무엇입니까?

동일한 디렉터리에 있는 "Background.png" 파일을 수백 개의 .zip 파일로 업데이트해야 합니다. 나는 성공하지 않고 다음 명령을 시도했습니다.

7z u -r "C:\Users\xxx\Desktop\testzip\*.zip" "C:\Users\xxx\Desktop\testzip\background.png"

"파일을 열 수 없습니다"라는 오류가 발생합니다. 그것을 할 수 있습니까?

답변1

7-Zip을 사용하여 모든 zip 파일에 하나의 특정 파일을 반복적으로 추가하세요.

사용/F의 경우루프와 디렉토리/S /B /A-D스위치를 사용하여 시작 디렉터리부터 각 zip 파일을 하나씩 재귀적으로 반복하고 이 방식으로 각 아카이브 파일을 업데이트하는 명령입니다 .

메모: 이 방법을 사용하면7-Zip -r업데이트 매개변수로 전환하세요.


명령줄

FOR /F "TOKENS=*" %A in ('DIR /S /B /A-D "C:\Users\xxx\Desktop\testzip\*.zip"') DO 7z u "%~fA" "C:\Users\xxx\Desktop\testzip\background.png"

배치 스크립트

메모: 변수 값을 SET Src=재귀적으로 zip 파일을 업데이트하려는 전체 경로 시작 폴더의 값으로 설정할 수 있습니다. SET uFile=zip 파일을 업데이트하는 데 사용할 파일의 전체 경로가 되도록 변수 값을 설정할 수 있습니다 . 업데이트 파일.

@ECHO ON

SET Src=C:\Users\xxx\Desktop\testzip
SET uFile=C:\Users\xxx\Desktop\testzip\background.png

FOR /F "TOKENS=*" %%A in ('DIR /S /B /A-D "%Src%\*.zip"') DO (
    7z u "%%~fA" "%uFile%"
)

추가 리소스

  • /F의 경우
  • FOR /?

        tokens=x,y,m-n  - specifies which tokens from each line are to
                          be passed to the for body for each iteration.
                          This will cause additional variable names to
                          be allocated.  The m-n form is a range,
                          specifying the mth through the nth tokens.  If
                          the last character in the tokens= string is an
                          asterisk, then an additional variable is
                          allocated and receives the remaining text on
                          the line after the last token parsed.
    

    또한 FOR 변수 참조 대체 기능이 향상되었습니다. 이제 다음 선택적 구문을 사용할 수 있습니다.

    %~fI        - expands %I to a fully qualified path name
    
  • 디렉토리

  • -u(업데이트 옵션) 스위치

관련 정보