powershell - 在Powershell中作为副作用输出

标签 powershell

我通过Select-Object传递代码,并希望在选择时从选择中输出。

我可以使用$ _,变量或循环,但希望有更好的实现,
它只是作为副作用输出到控制台并继续运行,例如

Get-Whatever | Pipe-Out Name, Phone | Do-Whatever Surname, Address | ...

我的示例字符串是
Get-VM  | Select-Object VMId | Get-VHD | Select-Object path, parentpath | Format-List

这大致给了我输出
Path                           ParentPath
----                           ----------
C:\Users\...\Ubuntu...avhdx    C:\Users\...\Ubuntu.vhdx
C:\Users\...\Foss...avhdx      C:\Users\...\Foxx..vhdx

我也想要Name中的Get-Vm。 (Get-VM | Select-Object Name)。
Name      Path                           ParentPath
----      ----                           ----------
Ubuntu    C:\Users\...\Ubuntu...avhdx    C:\Users\...\Ubuntu.vhdx
Foss      C:\Users\...\Foss...avhdx      C:\Users\...\Foxx..vhdx

最佳答案

我没有该命令,但是有一个-PipelineVariable通用参数。

get-vm -pipelinevariable vm | get-vhd |
  select-object @{n='name'; e={$vm.name}}, path, parentpath 

关于powershell - 在Powershell中作为副作用输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57544796/

相关文章:

powershell - 可以使用Get-Member检查集合的方法和属性,而不是检查集合项(默认值)吗?

windows - 运行对话框执行 powershell 命令

powershell - Set-StrictMode 不涵盖整个 PowerShell 脚本

powershell - 在 Start-Job 中传递 [switch]

Powershell - LastLogonDate 距今天已超过 90 天

powershell - 通过 PowerShell 在远程服务器上运行批处理脚本

Powershell 和 wmi,如何将逻辑磁盘/卷映射到硬盘,反之亦然?

powershell - Azure Runbook - 缺少 PowerShell Cmdlet 或未针对 VM 执行

sql-server - 使用 powershell 检查 RAM、页面文件、/PAE、/3GB、SQL 服务器内存

powershell - 从 WebJob/WebApp 访问注册表