in reply to Perl and 7zip and backticks
The status information comes out via stderr, so you'll need to redirect that in order to capture it.
Try:
open PIPE, '-|', '"\Program Files\7-Zip\7z.exe" a -r -mx0 -tzip e:\the +Zip.zip 2>&1' or die $@;; while( <PIPE> ) { # do something with the status output here }
Update: Here's the test I ran of my suggestion:
Perl> open PIPE, '-|', '"\Program Files\7-Zip\7z.exe" e -so e:\UnxUtil +sSrc.zip 2>&1 1>nul' or die $@;; Perl> print <PIPE>;; 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 Processing archive: e:\UnxUtilsSrc.zip Extracting unxutils Extracting unxutils\CVS Extracting unxutils\CVS\Root Extracting unxutils\CVS\Repository Extracting unxutils\CVS\Entries Extracting unxutils\Downhill Extracting unxutils\Downhill\CVS Extracting unxutils\Downhill\CVS\Root Extracting unxutils\Downhill\CVS\Repository Extracting unxutils\Downhill\CVS\Entries Extracting unxutils\Downhill\DOC Extracting unxutils\Downhill\DOC\CVS Extracting unxutils\Downhill\DOC\CVS\Root Extracting unxutils\Downhill\DOC\CVS\Repository ... Extracting unxutils\zsh\Src\zle_utils.c Extracting unxutils\zsh\Src\zle_utils.pro Extracting unxutils\zsh\Src\zle_vi.c Extracting unxutils\zsh\Src\zle_vi.pro Extracting unxutils\zsh\Src\zle_word.c Extracting unxutils\zsh\Src\zle_word.pro Extracting unxutils\zsh\Src\zsh.exe Extracting unxutils\zsh\Src\zsh.h Extracting unxutils\zsh\Src\zsh.map Extracting unxutils\zsh\Src\ztype.h Extracting unxutils\zsh\Src\_exrc Everything is Ok Folders: 640 Files: 10528 Size: 108861113 Compressed: 38592955
I used -so & >nul to avoid the files actually being created, but omit those and they will.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Perl and 7zip and backticks
by Anonymous Monk on Feb 27, 2016 at 22:43 UTC | |
by BrowserUk (Patriarch) on Feb 27, 2016 at 23:13 UTC |