programing

PowerShell에 터미네이터가 없습니다. "

javajsp 2023. 10. 16. 21:31

PowerShell에 터미네이터가 없습니다. "

나는 다음 스크립트 코드를 가지고 있습니다.

#[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'

.\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'

이 첫번째는 일반 대시가 아니라 엔 대시(&ndash;HTML). 이전에 발견된 대시로 대체합니다.Dst.

같은 문제의 경우 윈도우-1252 또는 UFT-8 WITH BOM 인코딩으로 파워셸 스크립트를 저장하지 않아서 발생했습니다.

이는 경로가 "로 끝나는 경우와 같이 종결 따옴표가 뒤에 오는 경우에도 발생할 수 있습니다.다음 행은 인수 중 하나로 전달되며 이는 옳지 않습니다.

"c:\users\abc\"

대신 아래와 같이 인수를 전달하여 따옴표를 벗어나는 대신 마지막 백슬래시를 탈출합니다.

"c:\users\abc\"

스크립트에서 변수 주변에 작은 따옴표를 사용하는 이유는 무엇입니까?확장되지 않습니다.변수 확장에 큰따옴표를 사용하거나 변수 이름 자체만 사용합니다.

unzipRelease –Src '$ReleaseFile' -Dst '$Destination'

로.

unzipRelease –Src "$ReleaseFile" -Dst "$Destination"

전화를 걸 경우에도 이 오류가 발생합니다..ps1A에서 줄을 대다.bat파일 및 파일 경로에 공백이 있습니다.

해결책은 의 경로에 공간이 없는지 확인하는 것입니다..ps1파일.

사용 시 오류를 발견할 수 있습니다.@접두사/suffix는 여러 줄 문자열로 구성되어 있지만 실제로는 끝 접미사가 있습니다."@.

내 대본은 그렇게 보였소.

Add-Type @"
    public class SomeClass {
        ...
    }"@

아직도 할 말이 있어요문자열에 "@" 터미네이터가 없습니다.

메시지는 오해의 소지가 있었습니다. 왜냐하면 제가 해야 할 일은"@선행 공간 없이라인으로 이동:

Add-Type @"
    public class SomeClass {
        ...
    }
"@

내 폴더에 ' 기호가 들어 있었습니다.제거하고 나서 문제가 해결되었습니다.

만약 당신이 RHEL을 사용하고 있다면, "을 '로 대체해보세요. - 이것은 저에게 오류를 해결해 주었습니다.

건배.

언급URL : https://stackoverflow.com/questions/20706869/powershell-is-missing-the-terminator