我无法正确格式化此命令的输出
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
这是我正在执行的命令:
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