Ответ 1
Посмотрите на две черты в
unzipRelease –Src '$ReleaseFile' -Dst '$Destination'
Этот первый не обычный штрих, а en-dash (–
в HTML). Замените это чертой, найденной до Dst
.
У меня есть следующий script код
#[string]$password = $( Read-Host "Input password, please" )
param (
[string]$ReleaseFile = $(throw "-ReleaseFile is required"),
[string]$Destination = $(throw "-Destination is required")
)
function unzipRelease($src, $dst)
{
$shell = new-object -com shell.application
$zip = $shell.NameSpace($src)
foreach($item in $zip.items())
{
$shell.Namespace($dst).copyhere($item)
}
}
# .\deployrelease.ps1 -ReleaseFile ".\deploy.zip" -Destination "."
unzipRelease –Src '$ReleaseFile' -Dst '$Destination'
Я запускаю script с помощью:.\deployrelease.ps1 -ReleaseFile ".\deploy.zip" -Destination "."
Но я продолжаю получать следующее:
PS C:\Users\Administrator\Documents\Tools> .\deployrelease.ps1 -ReleaseFile ".\deploy.zip" -Destination
The string starting:
At C:\Users\Administrator\Documents\Tools\deployrelease.ps1:19 char:16
+ unzipRelease â? <<<< "Src '$ReleaseFile' -Dst '$Destination'
is missing the terminator: ".
At C:\Users\Administrator\Documents\Tools\deployrelease.ps1:19 char:55
+ unzipRelease â?"Src '$ReleaseFile' -Dst '$Destination' <<<<
+ CategoryInfo : ParserError: (Src `'$ReleaseF...'$Destination`':String) [], ParseException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
Я не смог найти исправление, поскольку не вижу никаких проблем.
Любая помощь?
Посмотрите на две черты в
unzipRelease –Src '$ReleaseFile' -Dst '$Destination'
Этот первый не обычный штрих, а en-dash (–
в HTML). Замените это чертой, найденной до Dst
.
В вашем script, почему вы используете одинарные кавычки вокруг переменных? Они не будут расширены. Используйте двойные кавычки для расширения переменных или сами имена переменных.
unzipRelease –Src '$ReleaseFile' -Dst '$Destination'
to
unzipRelease –Src "$ReleaseFile" -Dst "$Destination"
Эта ошибка также возникает, если вы вызываете файл .ps1
из файла .bat
а путь к файлу имеет пробелы.
Исправление состоит в том, чтобы убедиться, что на пути файла .ps1
нет пробелов.