태그 보관물: 7-zip

7-zip

7-zip으로 전체 폴더를 만드는 방법 궁금합니다. 나는 그것을하기 위해 배치 파일이 필요하다고 생각하지만,

800×600 픽셀로 자르는 사진이 많이 있습니다. 그것은 쉽게 이루어졌지만 이제는 가족이 모두 볼 수 있도록 업로드해야합니다.

이것은 사진에서 500MB입니다. 나는 각각 거의 같은 양의 그림이 들어있는 별도의 폴더를 압축하기로 결정했습니다. 이렇게하면 매일 커플을 업로드 할 수 있습니다. 이 작업을 수동으로 수행하는 것은 매우 길고 힘든 작업입니다. 7-zip으로 각 폴더를 개별적으로 처리하는 방법이 있는지 궁금합니다.

나는 그것을하기 위해 배치 파일이 필요하다고 생각하지만, 나는 그것에 좋지 않다. 모든 것을 하나의 폴더에 넣었습니다. 다양한 하위 폴더에는 그림이있는 곳이 있습니다. 필요한 것은 해당 폴더의 내용을 압축하는 것입니다. 폴더와 함께 압축 할 수 있는지 잘 모르겠습니다. PHP에 zip 모듈이 있다는 것을 알고 있습니다.이 모듈을 사용해 본 적이 없으므로 zip의 내용이 항목이 아닌 항목을 포함하는 폴더라는 사실을 처리 할 수 ​​있는지 잘 모르겠습니다.



답변

작업 디렉토리가 디렉토리 인 명령 프롬프트에서 실행 My Pictures하면이 명령은 각 서브 디렉토리 컨텐츠의 zip 파일을 작성하고 모든 zip 파일은 디렉토리에 남겨 둡니다 My Pictures.

편집 : 이름에 공백이있는 디렉토리를 허용하는 데 필요한 따옴표를 추가했습니다.

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" "%%d"

또한 다음 버전은 zip 파일 내부의 하위 디렉토리에 파일을 넣지 않고 대신 루트에 파일을 넣습니다.

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" ".\%%d\*"

Windows 7 이상에서

for /D %d in (*.*) do 7z a -tzip "%d.zip" "%d"

또는

for /D %d in (*.*) do 7z a -tzip "%d.zip" ".\%d\*"

답변

명령 줄이 작동하지 않고 대신 WinRAR을 다운로드했고 mtone 이 옳았습니다. WinRAR에는 여러 폴더를 별도의 ZIP 파일로 압축하는 옵션이 있습니다.

예를 C:\Files\Fables 01들어 C:\Files\Fables 01.zipC:\Files\Fables 02C:\Files\Fables 02.zip.

WinRAR을 사용하여 압축하려는 폴더가 포함 된 폴더를 연 후 다음 단계를 수행하십시오.

  • 압축 / 삭제하려는 모든 폴더를 선택하십시오.
  • “ADD”또는 Alt+ A또는 명령-> “파일을 아카이브에 추가”를 클릭하십시오
  • RAR 또는 ZIP을 선택하십시오
  • “파일”탭으로 이동
  • 보관함 상자에서 “각 파일을 별도의 보관함에 넣기”를 선택하십시오.

다른 설정을 고쳤 으면 확인 및 붐을 누르십시오. 여러 폴더의 여러 ZIP 파일. 이것은 커맨드 라인 7zip보다 훨씬 쉽습니다.


답변

eleven81의 답변을 약간만 업데이트하면 다음 코드는 여러 항목을 놓을 수있는 배치 파일을 만듭니다.

@echo off
if [%1]==[] goto :eof
:loop
7z a -tzip "%~1.zip" "%~1"
shift
if not [%1]==[] goto loop

이 배치 파일은 레지스트리를 통해 컨텍스트 메뉴에 추가 할 수 있습니다.

  1. [HKEY_CLASSES_ROOT \ Folder \ shell] 아래에 새 키를 만들고 cmd1이라고합니다.
  2. 문자열 값을 편집하고 ‘Batch Zip’이라고 부릅니다.
  3. 이 키 아래에 다른 새 키를 만들고 그것을 명령이라고 부릅니다.
  4. 이중 이스케이프 된 슬래시를 사용하여이 값을 경로로 변경하십시오.

예를 들어 내 항목은 “C : \ Users \ Rory \ Dropbox \ _apps \ batch_zip.bat” “% 1″입니다.

이 작업을 수행하면 ‘배치 우편 번호’에 대한 컨텍스트 메뉴에 선택한 폴더를 별도의 아카이브로 일괄 압축하는 항목이 있습니다.

그러나 상황에 맞는 메뉴를 통해이 작업을 수행하면 불행히도 모든 작업을 동시에 실행하며 많은 압축 및 압축 해제 작업을 수행 한 사람이 알 수 있듯이 압축 폴더는 한 번에 하나씩 연속적으로 훨씬 빠르게 작동합니다.

레지스트리 에서이 문제를 해결하는 방법을 아는 사람이 있으면 알려주십시오.

선택한 폴더를 배치로 드래그하면 차례로 배치됩니다.


답변

팁 : 이미지가 JPG 인 경우 이미 압축되어 있습니다. 압축 (압축 수준 : 저장)없이 ‘아카이브’모드에서 7-Zip을 사용하면 프로세스 속도가 엄청나게 빨라집니다.

울트라 압축을 사용하더라도 5 %는 거의 얻지 못할 것입니다.

실제로 첨부 파일을 추가하는 관점에서 생각하고있었습니다.

이메일 첨부 파일로 보내지 않습니다. 그 대신 소위 원 클릭 호스팅 서버 (예 : drop.io, rs, mu, ms 등 선택 사항이 풍부함)에 업로드 한 다음 이메일을 통해 다운로드 링크를 친구 및 가족에게 보냅니다.


답변

내가 찾은 roryok 의 대답은 매우 도움이 될, 그는 제공 batch script에 대한 Windows그 당신을 수 있도록 drag-&-drop빠르고 자동화 된 보관 파일입니다.


이 스크립트를 사용하려면 .bat확장명으로 저장 한 다음 파일 및 / 또는 폴더를 배치 파일 ( 또는 배치 파일 의 바로 가기)로 끌어다 놓을 수 있습니다 .

.zip파일은 소스 파일과 동일한 디렉토리에 작성됩니다.
( @ 스크립트에서 대상을 변경할 수 있지만archivePath )


쉽게 사용자 정의 및 전반적인 기능을 향상시키기 위해 업데이트 한 내용 :

  • 명명 된 변수 추가
  • 구현 for주어진 인수를 반복하는 것을 루프
    ( 함께이 delayedexpansion런타임 변수를 허용하는 )
  • if차별화 할 조건 추가 filesfolders
    • 이를 통해 아카이브 내에 상위 폴더를 묶지 않고 폴더 내용을 아카이브에 직접 추가 할 수 있습니다
      ( EG :   \archive.zip\file.txt   VS   \archive.zip\parent_folder\file.txt )
  • 실패한 인스턴스를 표시하거나 오류가없는 경우 성공 메시지를 표시하기 위해 오류 로그를 추가했습니다.

@Echo OFF
SetLocal EnableDelayedExpansion



Rem //  7-Zip Executable Path
Set sevenZip="C:\Program Files\7-Zip\7z.exe"



Rem // START: NewLine Variable Hack
Set newLine=^


Rem // END: NewLine Variable Hack !! DO NOT DELETE 2 EMPTY LINES ABOVE !!



Rem //  Set ErrorLog Variables
Set errorCount=0
Set separator=--------------------------------------------------------
Set errorLog=!newLine!!newLine!!separator!!newLine!!newLine!
Set errorPrefix=ERROR @:
Set successMessage=All Files Were Successfully Archived



Rem //  Loop Through Each Argument
SetLocal DisableDelayedExpansion
for %%x in (%*) do (

    Rem //  Use Current Argument To set File, Folder, & Archive Paths
    SetLocal DisableDelayedExpansion
    Set filePath="%%~x"
    Set directoryFiles="%%~x\*"
    Set archivePath="%%~x.zip"
    SetLocal EnableDelayedExpansion

    Rem //  Source Is A Folder
    if exist !directoryFiles! (
            Set sourcePath=!directoryFiles!
    )

    Rem //  Source Is A File
    if not exist !directoryFiles! (
            Set sourcePath=!filePath!
    )

    Rem //  Print Separator To Divide 7-Zip Output
    echo !newLine!!newLine!!separator!!newLine!!newLine!

    Rem //  Add Files To Zip Archive
    !sevenZip! A -TZIP !archivePath! !sourcePath!

    Rem //  Log Errors
    if ErrorLevel 1 (
        Set /A errorCount=errorCount+1
        Set errorLog=!errorLog!!newLine!!errorPrefix!!sourcePath!
    )
)



Rem //  Print ErrorLog
if !errorCount!==0 (
    Set errorLog=!errorLog!!newLine!!successMessage!
)
Echo !errorLog!!newLine!!newLine!!newLine!



Rem //  Keep Window Open To View ErrorLog
pause

답변

7-zip에는 모든 파일을 자체 폴더 (* /)로 압축 해제 할 수있는 옵션이 있지만 원하는 반대 동작을 수행하기위한 컨텍스트 명령이 없습니다.

즉, 과거 winrar를 사용 하여이 정확한 일을 기억합니다. “폴더 당 고유 아카이브”옵션이나 그 영향이 있습니다.


답변

picasa를 받고 picasa의 웹 앨범에 업로드하십시오. 그런 다음 누구나 쉽게 온라인으로 사진을 가져 와서 볼 수 있으며 원본을 업로드 할 수도 있습니다 (가족이 더 큰 버전을 인쇄 할 수 있도록).