中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 10:26
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 各位大神请教个判断的问题 查看 2,329 回复 0
楼 主 各位大神请教个判断的问题 发表于 2016-03-31 14:25 ·  中国 广东 深圳 电信
初级用户
积分 60
发帖 20
注册 2016-03-30 21:10
10年会员
UID 181540
性别 男
状态 离线
如下是代码:
echo off&setlocal enabledelayedexpansion
cd /d %~dp0
for /f "tokens=7* delims=\" %%i in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') do (
echo 当前扫描信息: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i" reg.$ >nul
for /f "delims=" %%j in ('type reg.$ ^| findstr /i /c:"DisplayName" 2^>nul') do (
set DN=%%~j
set DN=!DN:"=!
set !DN!
)
for /f "delims=" %%k in ('type reg.$ ^| findstr /i /c:"InstallLocation" 2^>nul') do (
set IL=%%~k
set IL=!IL:"=!
set IL=!IL:\\=\!
set !IL!
)
if not defined DisplayName set DisplayName=没有信息。
if not defined InstallLocation set InstallLocation=没有信息。
(echo ++++++++
echo 注册表值: %%~i
echo 软件名称: !DisplayName!
echo 安装路径: !InstallLocation!
echo,)>>1.txt
set DisplayName=&set InstallLocation=&del reg.$
)



会生成一个txt文件,大致如下:

++++++++
注册表值: AddressBook
软件名称: 没有信息。
安装路径: 没有信息。

++++++++
注册表值: Adobe Flash Player ActiveX
软件名称: Adobe Flash Player 20 ActiveX
安装路径: 没有信息。

++++++++
注册表值: Connection Manager
软件名称: 没有信息。
安装路径: 没有信息。

++++++++
注册表值: DirectDrawEx
软件名称: 没有信息。
安装路径: 没有信息。


我想得到的效果是:
如果:软件名称:没有信息。对应的四行就不要写进文本里面。
这样上面的文本就只会显示如下信息:


++++++++
注册表值: Adobe Flash Player ActiveX
软件名称: Adobe Flash Player 20 ActiveX
安装路径: 没有信息。


请问各位怎么修改。谢谢
论坛跳转: