下面是我正在执行的命令:
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\7-Zip\7zFM.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 +删除了引号,但是如果一个项目有两组引号,则会保留一组引号(很抱歉,我应该澄清这一点。
我想我在兜圈子,只是想寻求一些帮助。
我通过以下管道计算出了csv格式:
| Export-Csv -Path .\programs.csv -Encoding ascii -NoTypeInformation发布于 2020-11-29 13:25:54
是像这样吗?
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发布于 2020-11-29 11:48:15
.NET中的string对象有一个Trim()方法,该方法通常从字符串的开头和结尾去掉空格,但也可以使用一个字符数组来去掉。
因此,将CommandLine的表达式修改为以下内容就足够了:
$_.'(default)'.Trim('"')附注:我不确定CommandLine表达式中的$q变量是什么。但我不认为你需要它。
https://stackoverflow.com/questions/65056779
复制相似问题