我无法正确格式化此命令的输出

I cant format the output of this command correctly

这是我正在执行的命令:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\*"  | Where-Object {$_."(default)" -ne $null} | Select-Object @{ expression={$_.PSChildName}; label='Program'} ,@{ expression={$q + $_."(default)" +$q}; label='CommandLine'}

这是输出的片段:

Program                    CommandLine                                                                                                 
-------                    -----------                                                                                                 
7zFM.exe                   C:\Program Files-ZipzFM.exe                                                                             
AcroRd32.exe               C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe                                          
Adobe Audition CC.exe      "C:\Program Files\Adobe\Adobe Audition CC 2019\Adobe Audition CC.exe"                                       
Adobe Media Encoder.exe    "C:\Program Files\Adobe\Adobe Media Encoder CC 2019\Adobe Media Encoder.exe"                                
Adobe Premiere Pro.exe     "C:\Program Files\Adobe\Adobe Premiere Pro CC 2019\Adobe Premiere Pro.exe"                                  
AfterFX.exe                C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\AfterFX.exe                                
BJMYDGN.EXE                C:\Program Files\Canon\MyPrinter\BJMyDgn.exe                                                                
BJMYPRT.EXE                C:\Program Files\Canon\MyPrinter\BJMyPrt.exe    

我是文本格式的新手,我想在一个 csv 文件中创建它,它有 2 列,程序和可执行文件,并删除所有引号“”。 $q + 删除引号,但是如果一个项目有 2 组引号,一组保留如上(抱歉我应该澄清一下..

我想我 运行 在圈子里,只是在寻求帮助。

我通过管道传输找到了 csv 格式:

| Export-Csv -Path .\programs.csv -Encoding ascii -NoTypeInformation

.NET 中的字符串对象有一个 Trim() 方法,通常会从字符串的开头和结尾去除空格,但也可以使用要去除的字符数组。

因此,将 CommandLine 的表达式修改为:

$_.'(default)'.Trim('"')

P.S。我不确定 CommandLine 表达式中的 $q 变量是什么。但我认为你不需要它。

像这样?

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\*"  | Where "(default)" -ne $null | 
        Select @{ E={$_.PSChildName}; N='Program'} ,@{ E={$_."(default)".Trim('"')}; N='CommandLine'} |
            export-csv .\programs.csv -Encoding ascii -NoType