在很多情况下,我们需要直接调用一个PowerShell脚本文件(.ps1文件), 而不是用ISE代开这个文件然后F5执行,有时候我们需要动态的告诉这个脚本一些变量值,这是我们就需要为这个脚本文件设置参数了,也许你会说,我写一个大方法替代这个脚本文件不好吗? 当然可以了,这少我认为完全可以,但是你这个方法是不是显得特别臃肿呢?还有你使用这个方法时是不是也要导入这个方法所在的文件呢? 所以在很多情况下还是为脚本设置参数更方便。
下面举个例子,test.ps1:
param
(
[int[]] $MyArray
)
foreach($i in $MyArray)
{
Write-Host $i;
}
调用test.ps1 :.\Untitled2.ps1 -MyArray (1,3,5,7,9), 输出结果:
PS D:\MDS\Test Environment Setup\EVT> .\Untitled2.ps1 -MyArray (1,3,5,7,9)
1
3
5
7
9
有时我们不仅仅满足于为文件添加参数,我们还要设置参数是否是必选参数,查看PowerShell的帮助文档,查找param,可以将以上文件修改如下:
param
(
[parameter(Mandatory=$true)]
[int[]] $MyArray
)
foreach($i in $MyArray)
{
Write-Host $i;
}
如果此时调用该文件时没有写参数则会弹出录入对话框。