Powershell 管道中以前的commandlet
我正在尝试编写一个powershell管道函数,想知道是否有办法找出管道中的前一个命令Powershell 管道中以前的commandlet,powershell,Powershell,我正在尝试编写一个powershell管道函数,想知道是否有办法找出管道中的前一个命令 Get-ChildItem | format-nice Get-ChildItem | Pipeline -Verbose 有没有办法在格式nice的上下文中找到Get ChildItem是管道上的前一个commandlet 谢谢, Shiju您可以使用Get-PSCallStack在函数中定位管道命令,以定位以前使用的命令。所以像这样的函数 Function Pipeline { [cmdlet
Get-ChildItem | format-nice
Get-ChildItem | Pipeline -Verbose
有没有办法在格式nice的上下文中找到Get ChildItem是管道上的前一个commandlet
谢谢,
Shiju您可以使用Get-PSCallStack在函数中定位管道命令,以定位以前使用的命令。所以像这样的函数
Function Pipeline {
[cmdletbinding()]
Param(
[parameter(ValueFromPipeline)]
$InputObject
)
$PreviousCommand = (Get-PSCallStack).InvocationInfo[1].MyCommand.Definition
Write-Verbose "Command: $(($PreviousCommand | Out-String))"
}
…然后可以在管道中使用,您可以知道管道中使用了哪些命令
Get-ChildItem | format-nice
Get-ChildItem | Pipeline -Verbose
VERBOSE:Command:Get ChildItem | Pipeline-VERBOSE
VERBOSE:Command:getchilditem|
获取项目|
管道-详细
请记住,这是脆弱的,如果您在一次执行中运行多个命令,而不是通过管道执行,那么它将显示更多内容。例如,如果调用函数并在同一次执行中运行命令,则结果可能如下:
详细:命令:函数管道{
[cmdletbinding()]
Param(
[参数(ValueFromPipeline)]
$InputObject
)
$PreviousCommand=(Get-PSCallStack).InvocationInfo[1].MyCommand.Definition
详细写入“命令:$($PreviousCommand | Out String))”
}
获取子项|管道-详细