gpt4 book ai didi

powershell - 从 powershell 管道中删除命令

转载 作者:行者123 更新时间:2023-12-02 01:46:47 25 4
gpt4 key购买 nike

如果我没理解错的话。使用 AddCommand() 向管道添加命令。这意味着例如

$PS = [PowerShell]::Create()
$PS.AddCommand("Command-One").AddParameter("Param1");
$PS.AddCommand("Command-Two").AddParameter("Param2");
$PS.Invoke();

将调用以下脚本:

PS> Command-One -Param1 | Command-Two -Param2

现在,我可以将此脚本更改为

PS> Command-One -Param1 | Command-Three -Param3

无需重新初始化$PS?我没有找到像 DelCommand 这样的方法可以从管道中删除最后一个命令。

第二个问题是 Invoke() 的成功执行是否清除了所有挂起的命令而使管道为空。

最佳答案

是的,你可以。命令包含在 CommandCollection Object 中它继承了集合。要删除第二个命令并添加第三个命令,您可以执行以下操作:

$PS.Commands.Commands.RemoveAt(1)
$PS.AddCommand("Command-Three").AddParameter("Param3")

第二个问题:如果我没理解错的话,您想知道在使用 Invoke 方法后,命令是否从 CommandCollection 中清除并留空?不,事实并非如此:

PS> $PS = [Powershell]::Create()
PS> $PS.AddCommand("New-Item").AddParameter("Name", "File.txt").AddParameter("Type","File")
PS> $PS.AddCommand("Remove-Item").AddParameter("Path", "File.txt")
PS> $PS.Invoke()
PS> $PS.Commands

Commands
--------
{New-Item, Remove-Item}

如果您想清除它们,请在 Commands 属性上运行 Clear 方法

PS> $PS.Commands.Clear()
PS> $PS.Commands

Commands
--------
{}

关于powershell - 从 powershell 管道中删除命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156868/

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