我有一些名为Winhell的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。
答案 0 :(得分:1)
WinZip不支持从命令行使用UNC路径。在预先形成zip之前,您需要将驱动器号映射到UNC路径。您可以轻松编写此脚本:
net use s: "\\server.domain.com\FirstName LastName\ProjectId\"
或者,您可以在本地复制文件,压缩文件,然后从本地副本中删除它们,只留下您的zip文件。
我相信7zip没有这个限制,并且通常能够完成WinZip的所有功能。
答案 1 :(得分:1)
虽然不能直接回答您的问题,但也许您可以在CodePlex(http://powershellzip.codeplex.com/)上使用PowerShell模块PowerShellZIP为您创建ZIP文件。
然后,您可以使用完整的PowerShell管道来创建ZIP文件,而不是调用WinZip。
我还没有通过测试,看看这个模块是否可以从UNC路径中压缩文件。