首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >cmdlet 2.0和“术语‘参数’不被识别为PowerShell、函数、脚本文件或可操作程序的名称”

cmdlet 2.0和“术语‘参数’不被识别为PowerShell、函数、脚本文件或可操作程序的名称”
EN

Stack Overflow用户
提问于 2009-08-22 12:28:13
回答 5查看 69.3K关注 0票数 56

我正在运行Windows 7 RTM。默认情况下会安装PowerShell 2.0。我正在使用优秀的Windows PowerShell ISE来编辑我的脚本。我有以下脚本:

代码语言:javascript
复制
Param($p)
Param($d)
echo $p $d

我将脚本另存为SayItAgain.ps1。当我尝试从交互式shell运行此脚本时,如下所示:

代码语言:javascript
复制
./SayItAgain -p "Hello"

我收到以下错误:

术语“参数”无法识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

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

这是一个已知的问题,还是我用错了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-22 15:54:43

我已经解决了问题。我已经更正了对问题的描述,以使其准确。

问题的根源是我错误地多次使用了Param关键字。正确的用法是在单个Param声明中声明多个参数,如下所示:

代码语言:javascript
复制
Param($p, $d)

在Windows PowerShell帮助文章"about_Functions“中解释了这种用法。

票数 49
EN

Stack Overflow用户

发布于 2009-08-22 04:45:36

如果您的param($p)不是脚本中的第一行,就会导致参数错误。

确保您的param($p)是第一行。

票数 118
EN

Stack Overflow用户

发布于 2011-05-11 06:17:57

运行此脚本,

代码语言:javascript
复制
cls

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

Write-Host "Url: $Url"  

我得到了同样的错误

术语“param”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

当我注释掉顶部的cls时,它起作用了,

代码语言:javascript
复制
#cls 

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

Write-Host "Url: $Url"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1315140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档