【问题标题】:How to pipe the output of a powershell variable to text file如何将powershell变量的输出通过管道传输到文本文件
【发布时间】:2019-05-17 19:18:56
【问题描述】:

我已经声明了一个 powershell 变量,通过定义一个变量来获取安装在 Windows 2016 服务器上的包,我想将它通过管道传输到一个文本文件。

$jvn=Get-Command java | Select-Object Version

我尝试过使用 $jvn=Get-Command java | Select-Object Version | Out-File -FilePath .\jvn.txt 但这会打印在屏幕上,而不是文本文件中, 我希望文本文件中的输出为 Java 版本 8.0.202.26

【问题讨论】:

  • 您发布的这条命令$jvn=Get-Command java | Select-Object Version | Out-File -FilePath .\jvn.txt 是您写入文本文件的方式。如果您这样做,它将不会打印到屏幕上。
  • 感谢@ArcSet 的回复,但我想在输出中添加“Java”,所以它显示 Java 版本 ------- 8.0.202.26
  • 如果您想将属性名称从版本更改为 Java 版本,您可以这样做。 $jvn=Get-Command java | Select-Object @{N=’Java Version’; E={$_.Version}} | Out-File -FilePath C:\test\jvn.txt

标签: powershell


【解决方案1】:

所以听起来基于输出正在发生的 cmets,但您想将属性名称从 Version 更改为 Java Version。

Get-Command java | Select-Object @{N=’Java Version’; E={$_.Version}} | Out-File -FilePath C:\test\jvn.txt

您发布的Get-Command java | Select-Object Version | Out-File -FilePath .\jvn.txt 与上面的 sn-p 的主要区别在于命令 Select-Object @{N=’Java Version’; E={$_.Version}}

所以让我们分解一下。我们正在创建一个哈希表 @{}。 在哈希表中,我们添加了N="New Name Of Property"; E="Property Value"NName 的缩写,EExpression 的缩写。

【讨论】:

  • 感谢@ArcSet 的快速回复,我是对 Powershell 的新回复。我已经声明了 $prm=Get-WmiObject Win32_Product -Computer 之类的变量。 -过滤器“供应商='Wolters Kluwer Financial Services'”|选择对象名称、供应商、版本 | Out-File -FilePath D:\Software\pkg.txt ,此命令在 powershell 中运行时工作正常而不是作为脚本的一部分,我错过了什么
【解决方案2】:
gcm java | foreach { $version = $_.version; "Java Version $version" } > jvn.txt

【讨论】:

  • 我有 2 个变量$rgteng=Get-WmiObject Win32_Product -Computer 。 -过滤器“供应商='WKFS'”|选择对象名称、供应商、版本 | Out-File -FilePath D:\Software\pkg.txt , $prm=Get-WmiObject Win32_Product -Computer 。 -过滤器“供应商='Wolters Kluwer Financial Services'”|选择对象名称、供应商、版本 | Out-File -FilePath D:\Software\pkg.txt ,我希望它们写入同一个文本文件,但没有发生,当单独运行最后一个 o/p 时打印到 txt 文件,这里有任何帮助
  • 输出文件-追加
猜你喜欢
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多