Архив чтения PowerShell PSCX: не удается связать параметр ... проблема - PullRequest
0 голосов
/ 17 июня 2010

Я столкнулся с проблемой, которую я, кажется, не могу обернуть, используя командлет Read-Archive, доступный через PowerShell Community Extensions (v2.0.3782.38614).

Вот сокращениеПример, использованный для демонстрации проблемы, с которой я сталкиваюсь:

$mainPath = "p:\temp"
$dest = Join-Path $mainPath "ps\CenCodes.zip"
Read-Archive -Path $dest -Format zip

Выполнение вышеуказанного приводит к следующей ошибке:

Read-Archive : Cannot bind parameter 'Path'. Cannot convert the "p:\temp\ps\CenCodes.zip" value of type "System.String" to type "Pscx.IO.PscxPathInfo".
At line:3 char:19
+ Read-Archive -Path <<<<  $dest -Format zip
    + CategoryInfo          : InvalidArgument: (:) [Read-Archive], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Pscx.Commands.IO.Compression.ReadArchiveCommand

Если я не использую Join-Path для построения путипереданный в Read-Archive, он работает, как в этом примере:

$mainPath = "p:\temp"
$path = $mainPath + "\ps\CenCodes.zip"
Read-Archive -Path $path -Format zip

Вывод сверху:

    ZIP Folder: CenCodes.zip#\

Index          LastWriteTime         Size    Ratio Name                                                                                       -----          -------------         ----    ----- ----
0         6/17/2010  2:03 AM      3009106  24.53 % CenCodes.xls

Еще более запутанным является сравнение двух переменных, переданных в качестве аргумента Path.в двух приведенных выше примерах чтения-архивирования они кажутся идентичными:

Это ...

Write-Host "dest=$dest"
Write-Host "path=$path"
Write-Host ("path -eq dest is " + ($dest -eq $path).ToString())

Выходы ...

dest=p:\temp\ps\CenCodes.zip
path=p:\temp\ps\CenCodes.zip
path -eq dest is True

У кого-то есть идеи, какпочему первый пример работает, а второй работает нормально?

1 Ответ

1 голос
/ 09 июля 2010

Я создал элемент в трекере ошибок на домашней странице CodePlex PSCX. По-видимому, это текущая известная проблема с PscxPathInfo. (См. item # 28023 в системе отслеживания проблем PSCX).

Обойти это можно следующим образом:

Get-Item $dest | Read-Archive 

Кредит r_keith_hill на CodePlex для этой конкретной работы.

...