programing

PowerShell 2.0 및 "'Param'이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다."

lastmoon 2023. 9. 9. 10:06
반응형

PowerShell 2.0 및 "'Param'이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다."

저는 윈도우 7 RTM을 실행하고 있습니다.PowerShell 2.0은 기본적으로 설치됩니다.저는 뛰어난 Windows PowerShell ISE를 사용하여 스크립트를 편집하고 있습니다.저는 다음과 같은 대본을 가지고 있습니다.

Param($p)
Param($d)
echo $p $d

Say It Again.ps1로 스크립트를 저장합니다.대화형 셸에서 이 스크립트를 실행하려고 하면 다음과 같습니다.

./SayItAgain -p "Hello"

다음 오류가 발생합니다.

'Param'이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다.이름의 철자를 확인하거나 경로가 포함된 경우 경로가 올바른지 확인하고 다시 시도합니다.

At C:\users\cius\Code\powershell\SayItAgain.ps1:2 char:6
+ Param <<<< ($destination)
    + CategoryInfo          : ObjectNotFound: (Param:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

이것은 알려진 문제입니까 아니면 단순히 잘못 사용하는 것입니까?

당신의param($p)는 매개 변수 오류를 일으킬 수 있는 스크립트의 첫 번째 행이 아닙니다.

당신의 것을 확인하세요.param($p)첫 번째 줄입니다.

제가 문제를 해결했습니다.문제의 설명을 정확하게 하기 위해 수정했습니다.

문제의 근원은 제가 Param 키워드를 여러 번 잘못 사용하고 있었다는 것입니다.올바른 사용법은 다음과 같이 단일 Param 선언 내에서 여러 개의 파라미터를 선언하는 것입니다.

Param($p, $d)

이 사용법은 Windows PowerShell 도움말 문서 "about_"에서 설명합니다.함수".

이 스크립트를 실행하면,

cls

param([string]$Url, [string]$Template="CMSPUBLISHING#0")

Write-Host "Url: $Url"  

같은 오류가 발생했습니다.

param이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다.이름의 철자를 확인하거나 경로가 포함된 경우 경로가 올바른지 확인하고 다시 시도합니다.

제가 댓글을 달았을 때.cls정상적으로는 효과가 있었고,

#cls 

param([string]$Url, [string]$Template="CMSPUBLISHING#0")

Write-Host "Url: $Url"

또한 이러한 "종류의" 문제가 있었지만 ps1 스크립트를 실행할 수 없었습니다.해결책:UTF-8(또는 사용자가 가지고 있는) 인코딩을 ANSI로 변경합니다.아마도 그것은 누군가에게도 도움이 될 것입니다.

azure dev-ops 파이프라인에서 powershell 인라인 스크립트를 사용하려고 할 때 이 문제가 발생했습니다. 이 문제가 문제이므로 대신 파일의 스크립트를 사용합니다.

언급URL : https://stackoverflow.com/questions/1315140/powershell-2-0-and-the-term-param-is-not-recognized-as-the-name-of-a-cmdlet

반응형