将空值传递给 cmdlet 参数
Pass empty value to cmdlet parameter
我正在编写 Get-EventLog cmdlet 的图形实例,以便我可以锁定用户可以输入的参数和值。在下图中,紫色框(左列)将由我设置,但棕褐色框(右列)可以接受用户输入的任何值。
在此后端,我正在编写一个函数,该函数将采用用户输入的任何值并使用这些值调用 Get-EventLog cmdlet。例如,如果用户只为最新的参数输入一个值,那么这将是它将生成的代码:
Get-EventLog -LogName Application -Source sourcename -Newest uservalue `
-After $null -Before $null
问题是 cmdlet 无法将 $null
识别为 -After
和 -Before
参数的可接受输入。如何将空值传递给 cmdlet 的参数而不引发错误?
$params = @{
LogName = 'Logname'
Source = 'Source'
}
if ($AfterValue) {
$params.After = $AfterValue
}
if ($BeforeValue) {
$params.Before = $BeforeValue
}
if ($NewestValue) {
$params.Newest = $NewestValue
}
Get-EventLog @params
我正在编写 Get-EventLog cmdlet 的图形实例,以便我可以锁定用户可以输入的参数和值。在下图中,紫色框(左列)将由我设置,但棕褐色框(右列)可以接受用户输入的任何值。
Get-EventLog -LogName Application -Source sourcename -Newest uservalue `
-After $null -Before $null
问题是 cmdlet 无法将 $null
识别为 -After
和 -Before
参数的可接受输入。如何将空值传递给 cmdlet 的参数而不引发错误?
$params = @{
LogName = 'Logname'
Source = 'Source'
}
if ($AfterValue) {
$params.After = $AfterValue
}
if ($BeforeValue) {
$params.Before = $BeforeValue
}
if ($NewestValue) {
$params.Newest = $NewestValue
}
Get-EventLog @params