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'
이 첫번째는 일반 대시가 아니라 엔 대시(–
HTML). 이전에 발견된 대시로 대체합니다.Dst
.
같은 문제의 경우 윈도우-1252 또는 UFT-8 WITH BOM 인코딩으로 파워셸 스크립트를 저장하지 않아서 발생했습니다.
이는 경로가 "로 끝나는 경우와 같이 종결 따옴표가 뒤에 오는 경우에도 발생할 수 있습니다.다음 행은 인수 중 하나로 전달되며 이는 옳지 않습니다.
"c:\users\abc\"
대신 아래와 같이 인수를 전달하여 따옴표를 벗어나는 대신 마지막 백슬래시를 탈출합니다.
"c:\users\abc\"
스크립트에서 변수 주변에 작은 따옴표를 사용하는 이유는 무엇입니까?확장되지 않습니다.변수 확장에 큰따옴표를 사용하거나 변수 이름 자체만 사용합니다.
unzipRelease –Src '$ReleaseFile' -Dst '$Destination'
로.
unzipRelease –Src "$ReleaseFile" -Dst "$Destination"
전화를 걸 경우에도 이 오류가 발생합니다..ps1
A에서 줄을 대다.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
'programing' 카테고리의 다른 글
워드프레스 관리 영역에서 메뉴 항목 레이블을 변경하시겠습니까? (0) | 2023.10.16 |
---|---|
pphmyadmin 결과에서 예상 행 수가 매우 다른 이유는 무엇입니까? (0) | 2023.10.16 |
자바스크립트:바이트 배열의 새 탭에서 PDF 열기 (0) | 2023.10.16 |
파이썬 데코레이터에게 추가 인수를 전달하려면 어떻게 해야 합니까? (0) | 2023.10.16 |
malloc()는 연속된 메모리 블록을 할당합니까? (0) | 2023.10.16 |