我有一些调用WinZip并进行归档的powershell代码。
$program = "c:\program files (x86)\WinZip\WZZIP.EXE"
& $program -a -P -r c:\temp\test.zip ("\\server.domain.com\FirstName LastName\ProjectId\*.*")
这两个反斜杠是UNC路径的一部分。我必须使用UNC和完全限定的域名。
上面的代码试图运行,但在我终止它之前一直挂起(在ISE中按下停止按钮)。
当我将UNC路径括在括号中时,代码再次尝试运行但挂起。
我该如何解决这个问题?我坚持使用UNC路径和WinZip。
发布于 2014-08-21 05:05:30
在WinZip中,不支持从命令行执行UNC路径。在执行压缩之前,您需要将驱动器号映射到UNC路径。您可以很容易地编写以下脚本:
net use s: "\\server.domain.com\FirstName LastName\ProjectId\"
或者,您可以在本地复制这些文件,将其压缩,然后从本地副本中删除它们,只留下您的zip文件。
我相信7zip没有这个限制,它通常能够做WinZip所做的一切,甚至更多。
发布于 2014-08-21 14:16:54
虽然不能直接回答您的问题,但也许您可以使用CodePlex (http://powershellzip.codeplex.com/)上的PowerShell模块PowerShellZIP为您创建ZIP文件。
然后,您可以使用完整的powershell管道来创建压缩文件,而不是调用WinZip。
我还没有测试过这个模块是否可以从UNC路径压缩文件。
https://stackoverflow.com/questions/25412292
复制相似问题