gpt4 book ai didi

powershell - .ps1 文件之上的 CmdletBinding() 如何工作?

转载 作者:行者123 更新时间:2023-12-05 01:35:01 24 4
gpt4 key购买 nike

考虑 PowerShell 代码示例 here :

powershell code

它在 .ps1 scipt 文件之上有 [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

并且它们将具有相同的输出。红色的 Test

与批处理文件 (.bat) 不同,您不能仅使用名称直接调用 ps1 脚本,因此只需使用 MyName -a -b Test 没有定义函数会导致错误。

关于powershell - .ps1 文件之上的 CmdletBinding() 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63290634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com