7-Zip 출력을 비활성화하는 방법은 무엇입니까?


34

7-Zip 을 사용 하여 다음과 같이 배치 파일 내의 파일을 압축합니다.

...\right_path\7z a output_file_name.zip file_to_be_compressed

나는 다음과 같은 결과를 얻었다 :

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Scanning

Creating archive output_file_name.zip

Compressing  file_to_be_compressed

Everything is Ok

이 출력을 비활성화 할 수 있습니까 (즉, 아무 것도 인쇄하고 싶지 않습니다)?

답변:


29

> NUL:명령 끝에 추가 하십시오.


1
콜론은 무엇입니까?
Peter Mortensen

3
@PeterMortensen : DOS 및 Windows 콘솔에서 예약 된 장치 이름 NUL뒤에 선택적 콜론이 올 수 있습니다. 내가 아는 한, 실제 기능은 수행하지 않지만 장치라는 것을 시각적으로 알리는 역할을하며 드라이브 문자 다음에 콜론을 사용하는 것과 유사합니다.
추후 공지가있을 때까지 일시 중지되었습니다.

17

-bs 명령을 사용하여 출력 위치를 제어 할 수 있습니다 . 오류 출력 이외의 것을 멈추려면을 추가 -bso0 -bsp0합니다.


이것은 정확하지만 7Zip 버전 15.01 또는 9.38beta 이후에 도입되었습니다. 출처 : sourceforge.net/p/sevenzip/discussion/45797/thread/8a45fa74 실제 Synology DSM 6.1.x에는 버전 9.20의 7zip이 포함되어 있으며 그러한 옵션은 없습니다.
PeterCo

12

프로세스에서 상태 메시지를 보는 것이 좋습니다. 긴 메시지를 피하려면 확인 만 표시하십시오.

...\right_path\7z a output_file_name.zip file_to_be_compressed | findstr /b /r /c:"\<Everything is Ok" /c:"\<Scanning" /c:"\<Creating archive"

findstr솔루션 주셔서 감사합니다 ! 검색 문자열 과 내부를 생략 /b하거나 생략하여 해당 호출을 다소 단축 할 수 있습니다 . 정규 표현식 ( 옵션)이 필요하지 않기 때문에 함께 갈 것입니다. 이미 문자열의 시작 부분에서만 검색합니다. \r\<findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive"/r/b
Oliver

상태 메시지를 사용하여 명령의 성공 여부를 확인하려면 리턴 코드를 사용하는 것이 좋습니다 ( 0성공 및 기타 실패에 대한 세부 사항). 스크립트에서 메시지보다 이러한 값을 기반으로 결정을 내리는 것이 더 쉽습니다.
WoJ

1
좋은 대답입니다. 나는 갔다 ... | findstr /v /b /c:"Compressing "목록 파일을 제거 할 수 있지만 다른 상태 메시지를 유지한다.
Duncan Smart

5

Bruno Dermario의 답변을 개선 하면서 오류를보고하고 수동으로 확인할 수 있기를 원했습니다.

...\right_path\7z a output_file_name.zip file_to_be_compressed > 7z_log.txt
type 7z_log.txt | findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive" /c:"Error"
echo.
echo (In case of Error check 7z_log.txt)
echo.

2

PowerShell이 ​​옵션이거나 다른 사람이 사용할 수있는 경우 findstr답변 아이디어를 바탕으로 내가 한 일이 있습니다.

& $sevenZipBin a "$archiveFile" * | where {
    $_ -notmatch "^7-Zip " -and `
    $_ -notmatch "^Scanning$" -and `
    $_ -notmatch "^Creating archive " -and `
    $_ -notmatch "^\s*$" -and `
    $_ -notmatch "^Compressing "
}
if (-not $?)
{
    # Show some error message and possibly exit
}

정상적인 작동에서는 "Everything is Ok"줄만 남습니다. 비정상적인 것이 인쇄되면 보이는 상태로 유지됩니다 (정기 출력에 자주 나타나는 빈 줄은 제외).

이것은 7z 형식 출력에 대해 테스트되었습니다. 다른 보관 형식은 "압축"이외의 다른 메시지를 생성 할 수 있습니다. 추출하면 다른 메시지가 생성 될 수 있습니다. 그러나 필요에 따라 쉽게 필터를 조정할 수 있습니다.

더 복잡한 아이디어는 모든 출력을 버퍼로 리디렉션하고 명령이 오류 종료 코드를 반환하는 경우에만 인쇄하는 것입니다. 리디렉션을 허용하고 정확한 오류 종료 코드를 제공하는 모든 명령과 함께 작동하는 방법입니다.


1

findstr솔루션 공유 :

%ZIP% a -tzip %FILE% %Folder% | findstr /I "archive everything"

따라서 원래 14 줄 출력 :


7-Zip 18.01 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2018-01-28

Scanning the drive:
4 folders, 13 files, 88957 bytes (87 KiB)

Creating archive: Releases\Archive.zip

Add new data to archive: 4 folders, 13 files, 88957 bytes (87 KiB)


Files read from disk: 13
Archive size: 33913 bytes (34 KiB)
Everything is Ok

4 줄로 축소 :

Creating archive: Releases\Archive.zip
Add new data to archive: 4 folders, 13 files, 88957 bytes (87 KiB)
Archive size: 33912 bytes (34 KiB)
Everything is Ok

그것은 sOut 만 줄이며, 경고와 오류는 sErr로 전달되므로 여전히 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.