I am running Windows 7 RTM. PowerShell 2.0 is installed by default. I am using the excellent Windows PowerShell ISE to edit my scripts. I have the following script:
Param($p)
Param($d)
echo $p $d
I save the script as SayItAgain.ps1. When I try to run this script from the interactive shell like so:
./SayItAgain -p "Hello"
I receive the following error:
The term 'Param' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\users\cius\Code\powershell\SayItAgain.ps1:2 char:6
+ Param <<<< ($destination)
+ CategoryInfo : ObjectNotFound: (Param:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Is this a known issue or am I simply using it wrong?
If your param($p)
is not the first line in your script that can cause the Param error.
Make sure your param($p)
is the first line.
I've solved the problem. I've corrected the description of the problem to make it accurate.
The source of the problem is that I was incorrectly using the Param keyword multiple times. The correct usage is to declare multiple parameters within a single Param declaration like the following:
Param($p, $d)
This usage is explained in the Windows PowerShell Help article "about_Functions".
Running this script,
cls
param([string]$Url, [string]$Template="CMSPUBLISHING#0")
Write-Host "Url: $Url"
I got the same error
The term 'param' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
When I commented out the cls
at the top it worked,
#cls
param([string]$Url, [string]$Template="CMSPUBLISHING#0")
Write-Host "Url: $Url"
Also had this "kind" of problem, but I couldn`t run any of my ps1 scripts. Solution: Change encoding from UTF-8 (or which you have) to ANSI. Perhaps it will help someone too.
I had this issue when trying to use a powershell inline script in an azure dev-ops pipeline, turns out this is an issue so will be using a script from a file instead
Success story sharing