.Bat删除列或删除csv文件中的文本

时间:2014-08-18 11:12:38

标签: batch-file csv

我创建了下面的.bat文件来查看他们的PC上安装了哪些程序。

cd C:\Users\%USERNAME%\Documents
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s | findstr /B ".*DisplayName" >%USERNAME%.CSV
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | findstr /B ".*DisplayName" >>%USERNAME%.CSV

但是在输出中我只想显示程序的名称。目前输出是:

DisplayName    REG_SZ    Microsoft Office Excel MUI (English) 2010

我想以某种方式将输出视为“Microsoft Office Excel MUI(英语)2010”所以删除“DisplayName REG_SZ”所有数据行都包含单词“REG_SZ”。

任何帮助都会很棒。

谢谢

约翰

2 个答案:

答案 0 :(得分:0)

听起来你需要做的就是在输出的任何地方用空字符串''替换字符串'DisplayName REG_SZ'。您可以使用字符串替换在批处理文件中执行此操作,如下所示:

set string=%string:DisplayName REG_SZ.=%

答案 1 :(得分:0)

你可以这样做:

@echo off
cd C:\Users\%USERNAME%\Documents
type nul > %USERNAME%.CSV
for /f "tokens=1,2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s ^| findstr /B ".*DisplayName"') do (
    echo %%c >> %USERNAME%.CSV
)
for /f "tokens=1,2*" %%a in ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s ^| findstr /B ".*DisplayName"') do (
    echo %%c >> %USERNAME%.CSV
)