PowerShell 的隐藏功能

PowerShell 的隐藏功能

有哪些隐藏功能电源外壳

答案1

强制 Powershell 函数真的返回一个数组,即使是一个空数组。

由于 @() 语法的实现方式,函数可能并不总是按预期返回数组,例如以下代码将返回 $null 和不是一个空数组。如果您使用 set 测试代码,则在尝试引用该属性时set-StrictMode -On会收到错误:PropertyNotFoundStrict.count

function test
{
    #some code that might return none,one or multiple values
    $data = $null
    return @($data)
}
(test).count

只需在前面添加一个,@()可以绕过“语法糖”,并且会返回一个实际的数组,即使它是空的:

function test2
{
    #some code that might return none,one or multiple values
    $data = $null
    return ,@($data)
}
(test2).count

答案2

创建您自己的自定义函数并将其保存在您的个人资料中。您可以构建大量有用的函数,而无需每次出现类似问题时都重新思考。

编辑您的个人资料:

PS C:\> notepad $profile

答案3

Add-Type -Assembly通过使用程序集名称或dll 路径访问任何 .net 类Add-Type -Path,然后使用类似的语法[Namespace.Dotted.ClassName+NestedClass]::StaticMethod()来创建New-Object Namespace.Dotted.ClassName或调用类型的静态方法/字段。

答案4

Splatting。您可以在 Hashtable 中定义一堆参数,然后将其用作函数的参数。

$sendMailParameters = @{
    To = '[email protected]'
    From  ='[email protected]'
    Subject = 'Something'
    Body = 'Some stuff'
    BodyAsHtml = $true
}

Send-MailMessage @sendMailParameters

相关内容