остановить Winzip от открытия окна проводника - PullRequest
0 голосов
/ 12 октября 2011

Мы тестируем загрузку распаковки нескольких файлов. Команды, очень похожие на показанные, выполняются из командного файла (вызываемого из SSIS)

C:\Progra~1\WinZip\WINZIP32.EXE -min -e -o -j C:\TEMP\ZipTest\x1.zip C:\TEMP\ZipTest\Z1
C:\Progra~1\WinZip\WINZIP32.EXE -min -e -o -j C:\TEMP\ZipTest\x2.zip C:\TEMP\ZipTest\Z2
C:\Progra~1\WinZip\WINZIP32.EXE -min -e -o -j C:\TEMP\ZipTest\x3.zip C:\TEMP\ZipTest\Z3
C:\Progra~1\WinZip\WINZIP32.EXE -min -e -o -j C:\TEMP\ZipTest\x4.zip C:\TEMP\ZipTest\Z4

К сожалению, после распаковки открывается четыре окна проводника (по одному на каждый архив).

enter image description here

Хотя эти окна легко закрыть, когда они запускаются на моем рабочем столе, я не могу закрыть ни одно окно, которое открывается под учетной записью SSIS.

Как предотвратить открытие этих окон?

Ответы [ 5 ]

5 голосов
/ 21 декабря 2012

Я знаю, что это старый вопрос, но я натолкнулся на него, когда пытался решить ту же проблему. Мое решение - использовать WinZip 14.5 на компьютере с Windows 7.

1) Открыть WinZip 2) Выберите вкладку «Главная» 3) В разделе «Распаковать» выберите «Распаковать параметры». 4) Снимите флажок перед Показать разархивированные файлы 5) Закройте WinZip и запустите ваш скрипт, экран Windows Explorer не должен открываться

2 голосов
/ 15 октября 2011

Мы используем утилиты командной строки WinZip wzzip.exe и wzunzip.exe именно по этой причине.

Держу пари, что администраторы сервера будут рады установить wzzip и wzunzip, как только вы объясните, что альтернатива для них - продолжать входить в окно и закрывать окна WinZip: -)

2 голосов
/ 12 октября 2011

Это, вероятно, настройка в графическом интерфейсе winzip. Существует отдельная версия командной строки , которая может работать лучше, но она доступна только для лицензионных версий.

Возможно, вы захотите рассмотреть некоторые бесплатные утилиты для распаковки командной строки , если вы не используете одну из проприетарных систем сжатия winzip.

1 голос
/ 01 ноября 2011

Используйте утилиты командной строки, как уже упоминали другие, или используйте сторонний разархивирующий компонент, подобный тому, который доступен в инструментах cozyroc.

0 голосов
/ 13 января 2014

вы можете попробовать написать скрипт, используя список задач и taskkill.Вот скрипт на Perl, который уничтожит все процессы проводника, созданные после запуска winzip:

#workaround to close explorer sessions created by winzip
@explorerBeforeWinzip = `tasklist /fi "imagename eq explorer.exe"`;
print "extract zip files\n";
`c:\\Progra~2\\Winzip\\WINZIP32.EXE -min -e -o $zipFile $dest`;

@explorerAfterWinzip = `tasklist /fi "imagename eq explorer.exe"`;
for($i=0;$i<scalar(@explorerAfterWinzip);$i++)
{
    $killMe=1;
    for($j=0;$j<scalar(@explorerBeforeWinzip);$j++)
    {
        if($explorerAfterWinzip[$i] eq $explorerBeforeWinzip[$j])
        {
            $killMe=0;
            last;
        }
    }
    if($killMe==1)
    {
        print "killing process: $explorerAfterWinzip[$i]\n";
        $explorerAfterWinzip[$i] =~ m/explorer.exe\s+(\d+)\s+/;
        `taskkill /pid $1`;
    }
}
...