0

我们正在测试下载多个文件的解压缩。与显示的命令非常相似的命令是从批处理文件(从 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

不幸的是,解压完成后,会打开四个资源管理器窗口(每个存档一个)。

在此处输入图像描述

虽然在我的桌面上运行时很容易关闭这些窗口,但我无法关闭在 SSIS 帐户下打开的任何窗口。

如何防止这些窗口打开?

4

5 回答 5

5

我知道这是一个老问题,但我在尝试解决同样的问题时遇到了它。我的解决方案是在 Windows 7 机器上使用 WinZip 14.5。

1) 打开 WinZip 2) 选择主页选项卡 3) 在解压缩部分中选择解压缩选项 4) 清除显示解压缩文件前面的复选标记 5) 关闭 WinZip 并运行您的脚本,Windows 资源管理器屏幕不应打开

于 2012-12-21T13:28:12.977 回答
2

这可能是 winzip GUI 中的设置。有一个单独的命令行版本可能会更好,但它仅适用于许可版本。

如果您不使用专有的 winzip 压缩之一,您可能需要考虑一些免费的命令行解压缩实用程序。

于 2011-10-12T14:21:56.127 回答
2

出于这个原因,我们使用 WinZip 命令行实用程序 wzzip.exe 和 wzunzip.exe。

我敢打赌,服务器管理员会很乐意安装 wzzip 和 wzunzip,一旦你解释了替代方案是让他们继续登录到盒子并关闭 WinZip 窗口 :-)

于 2011-10-15T14:39:51.647 回答
1

像其他人提到的那样使用命令行实用程序,或使用第三方解压缩组件,例如 cosyroc 工具中可用的组件。

于 2011-11-01T04:17:08.837 回答
0

您可以尝试使用 tasklist 和 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`;
    }
}
于 2014-01-13T10:26:21.793 回答