我正在运行Windows 7 RTM。默认情况下会安装PowerShell 2.0。我正在使用优秀的Windows PowerShell ISE来编辑我的脚本。我有以下脚本:
Param($p)
Param($d)
echo $p $d
我将脚本另存为SayItAgain.ps1。当我尝试从交互式shell运行此脚本时,如下所示:
./SayItAgain -p "Hello"
我收到以下错误:
术语“参数”无法识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
At C:\users\cius\Code\powershell\SayItAgain.ps1:2 char:6
+ Param <<<< ($destination)
+ CategoryInfo : ObjectNotFound: (Param:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
这是一个已知的问题,还是我用错了?
发布于 2009-08-22 15:54:43
我已经解决了问题。我已经更正了对问题的描述,以使其准确。
问题的根源是我错误地多次使用了Param关键字。正确的用法是在单个Param声明中声明多个参数,如下所示:
Param($p, $d)
在Windows PowerShell帮助文章"about_Functions“中解释了这种用法。
发布于 2009-08-22 04:45:36
如果您的param($p)
不是脚本中的第一行,就会导致参数错误。
确保您的param($p)
是第一行。
发布于 2011-05-11 06:17:57
运行此脚本,
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"
https://stackoverflow.com/questions/1315140
复制相似问题