如何在PowerShell脚本中使用UNC路径?

时间:2014-08-20 18:51:16

标签: powershell

我有一些名为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。

2 个答案:

答案 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路径中压缩文件。