"アンインストール"プログラムごとにPublisher、DisplayName、およびDisplayVersionを取得し、製品ごとに1行のファイルに入れ、各エントリ間にコンマをつけて、アンインストールプログラムの出力フォーマット - Poweshell
Publisher, DisplayName, DisplayVersion
が、私は、各エントリの内容全体を維持する必要があります(つまりFormat-Table
が行うよう、切り捨てられません)。
私は、後でアクセスするために、それぞれの希望のアイテムを配列に配置しています。
$Publisher = Get-ItemProperty 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | Select Publisher
$DisplayName = Get-ItemProperty 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | Select DisplayName
$DisplayVersion = Get-ItemProperty 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | Select DisplayVersion
エントリをループして書き出すことができるようにします。
for ($i=0; $i -lt $DisplayName.Count; $i++)
{
$MyOutput = (([string]::Concat($Publisher[$i].getValue, ",", $DisplayName[$i], ",", $DisplayVersion[$i]) | Out-String))
Add-Content D:\InstalledPrograms.txt $MyOutput
}
私はこれを行うと、私の出力はそれでアレイ名を持っているだけでなく同様:
@{Publisher=Adobe Systems Incorporated},@{DisplayName=Adobe AIR},@{DisplayVersion=3.1.0.4880}
(i.e. @{ArrayName ArrayContent})
にはどうすれば@{ArrayName }
を取り除くことができ、コンテンツのみを残しますか?
おかげフローデ。私はデータを1行ずつ書き込む前に少しデータを処理する必要があるので、最初に変数にコピーする必要があります。あなたが私に与えたものはとても役に立ちます。もともと私は1つの変数ですべてを持っていましたが、ファイルに正しく入るようにすることに問題があったときにそれを分割しました。わかった。 – Stett