2011-10-12 112 views
0

我们正在测试下载一个多文件解压缩。命令非常相似,节目是从一个批处理文件(从SSIS调用)执行的那些停止Winzip从打开资源管理器窗口

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帐户下打开。

如何防止这些窗口打开?

回答

2

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

如果您没有使用专有的winzip压缩,您可能需要考虑一些free command line unzip utilities

+0

WinZip是唯一的压缩实用程序建立在我们的服务器上。 :( –

+0

你不能将你的应用程序中的其中一个替代品捆绑在一起吗?我已经看到很多应用程序,并且大多数免费应用程序都允许你重新分配。 –

+0

它不是一个.Net应用程序 - 它是一个SSIS包。我猜可以在脚本组件中使用C#。 –

2

因为这个原因,我们使用WinZip命令行工具wzzip.exe和wzunzip.exe。

我敢打赌服务器管理员将竭诚为安装wzzip和wzunzip一旦你解释,另一种方法是让他们保持登录到箱子和关闭的WinZip窗口:-)

1

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

5

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

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

0

您可以尝试使用tasklist和taskkill编写脚本。 这里是一个Perl脚本,将终止正在运行的WinZip之后创建的所有explorer进程:

#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`; 
    } 
} 
相关问题