powershell - PowerShell 参数和管道的推荐格式

标签 powershell parameters formatting arguments structure

以这样的命令为例:

Get-AdUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) -Server some.server.domain.com | Where-Object {DisplayName -like '*Reemer, Bob*'}

当然,它很恶心、很长并且超出了屏幕...将其分成多行(以提高可读性)的首选方法是什么?

请给出适用于 ISE、普通 powershell 解释器和脚本的示例。

最佳答案

Of course it is gross and long...

它对我来说看起来非常好,但如果你想要更短的线,我建议 splatting :

$ADUserParams = @{
  Filter = {Enabled -eq $true}
  Credential = (Get-Credential) 
  Server = 'some.server.domain.com'
}
Get-ADUser @ADUserParams | Where-Object {DisplayName -like '*Reemer, Bob*'}

您还可以将 Where-Object 过滤器脚本 block 拆分为多行:

Get-ADUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) -Server some.server.domain.com | Where-Object {
  DisplayName -like '*Reemer, Bob*'
}

如果您总是多次重复使用相同的参数值,则可以使用 $PSDefaultParameterValues还有:

$PSDefaultParameterValues['*-AD*:Server'] = 'some.server.domain.com'
Get-ADUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) | Where-Object {DisplayName -like '*Reemer, Bob*'}

当然,您可以将它们全部组合起来:

$PSDefaultParameterValues['*-AD*:Server'] = 'some.server.domain.com'
$ADUserParams = @{
  Filter = {Enabled -eq $true}
  Credential = (Get-Credential) 
}
Get-ADUser @ADUserParams | Where-Object {
  DisplayName -like '*Reemer, Bob*'
}

关于powershell - PowerShell 参数和管道的推荐格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46938433/

相关文章:

powershell - Azure 发布管道 Powershell 任务失败

Visual Studio 上的 MySql 更新参数有奇怪的行为

C#代码合约: How to validate parameters of interfacemethod defined in other assembly?

java - 我需要在不使用实例变量的情况下重构这个类

python - 如何使用 Python 仅将 Excel 单元格中字符串的一部分加粗?

charts - Google 图表表格将单元格格式设置为百分比

powershell - 格式日志输出

powershell - 远程更改Windows服务上的帐户名和密码

PowerShell:如何查找和卸载 MS Office 更新

Windows 用户环境变量与系统环境变量