考虑 PowerShell 代码示例(在此处):
它在 .ps1 脚本文件的顶部有 [CmdletBinding()]
。
请注意 [CmdletBinding()] 在文件顶部,而不是函数中。
如何从命令行调用此文件并为参数分配值?
这种技术的名称是什么,我应该搜索并了解更多概念吗?
它在 .ps1 脚本文件的顶部有 [CmdletBinding()]
。
请注意 [CmdletBinding()] 在文件顶部,而不是函数中。
如何从命令行调用此文件并为参数分配值?
这种技术的名称是什么,我应该搜索并了解更多概念吗?
把文件看作一个有文件扩展名的大函数,您可以使用param
为文件分配参数,就像在函数中一样。同时,您还可以像在函数中一样对文件使用[CmdletBinding()]
。例如,如果我有一个具有多个开关并且可以接受参数的文件,我可以这样做:
[CmdletBinding()]
param([switch]$a,
[string]$b)
if ($a) {return Write-Host $b -ForegroundColor red}
return Write-Host $b
这与执行相同
function MyName {
[CmdletBinding()]
param([switch]$a
[string]$b)
if ($a) {return Write-Host $b -ForegroundColor red}
return Write-Host $b
}
你可以使用以下方式来调用它们
#file
.\MyName.ps1 -a -b Test
#function
MyName -a -b Test
它们将有相同的输出,一个红色的测试
与批处理文件(.bat
)不同,您不能直接使用脚本名称调用ps1
脚本,因此仅使用MyName -a -b Test
而没有定义函数将导致错误。
Functions_CmdletBindingAttribute
的帮助。 - Bill_Stewartfile.ps1 -param1 "Hello World"
。 - Uuuuuummparam
为文件分配参数,就像你可以为函数分配参数一样。此外,你也可以在文件中使用[cmdletbinding()]
,就像在函数中一样。 - Nico Nekoru