请教批处理高手:如何用批处理检查已安装的软件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教批处理高手:如何用批处理检查已安装的软件相关的知识,希望对你有一定的参考价值。

在网上有看到一个vbs脚本,可以检查系统中已安装的软件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\software.tsv", True)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "impersonationLevel=impersonate!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product")
For Each objSoftware in colSoftware
objTextFile.WriteLine objSoftware.Caption & vbtab & _
objSoftware.Description & vbtab & _
objSoftware.IdentifyingNumber & vbtab & _
objSoftware.InstallDate & vbtab & _
objSoftware.InstallLocation & vbtab & _
objSoftware.InstallState & vbtab & _
objSoftware.Name & vbtab & _
objSoftware.PackageCache & vbtab & _
objSoftware.SKUNumber & vbtab & _
objSoftware.Vendor & vbtab & _
objSoftware.Version
Next
objTextFile.Close

在实际测试中,发现该VBS脚本执行速度缓慢,而且在有些电脑上执行还会出错。

请问批处理高手:
如何用bat批处理检查已安装的软件?
谢谢!
千羽之城:
谢谢你的回复,结果后能否将DisplayName的值,跟在每行现有值的后面,因为有些值如:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROPLUS,如果只显示PROPLUS很难知道是什麽软件,但加上DisplayName键值Microsoft Office Professional Plus 2007,就很直观了。
谢谢!!!

参考技术A 更新:

@echo off&setlocal enabledelayedexpansion
set n=1
type nul>op.txt
reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall reg.$ >nul
for /f "delims=" %%i in ('type reg.$ ^| findstr "DisplayName ["') do (
set foo=%%~i
set foo=!foo:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\=!
set foo=!foo:DisplayName=!
set foo=!foo:"=!
If "!foo:~,1!"=="=" (echo/ !foo:~1!) else (
echo/!n! !foo!
set /a n+=1
)
)>>op.txt
start op.txt
exit本回答被提问者采纳

急!!请教高手:如何用MATLAB程序高效地对大批量的数据进行处理和保存?(回答满意追加5分)

例如我的Matlab程序是针对一幅图片处理并输出结果的,我想对1000幅图片做同样的处理并保存结果,手动运行1000次程序岂不累死了?

这个不是很简单吗,你只需要把你的程序放在循环里面,然后加入图片的打开和保存的语句,就可以处理很多图片了啊!追问

图片名各不相同,怎么办?

追答

你的名字有规律的话按照规律使用字符串连接的方式在每个循环内部先组成文件名。如果没有规律,还有简单的方法,你可以使用dir函数获取需要处理的所有图片的名字,然后一个一个处理。

参考技术A 写一个for loop循环就好啦
files = dir('*.jpg');
for k = 1:numel(files)
%....处理代码...
rgb = imread(files(k).name);
rgb = rgb(1:1800, 520:2000, :);
rgb = imresize(rgb, 0.2, 'bicubic');
imwrite(rgb, ['cropped\' files(k).name]);

end

自己看着修改就好了本回答被提问者采纳

以上是关于请教批处理高手:如何用批处理检查已安装的软件的主要内容,如果未能解决你的问题,请参考以下文章

高手 请我如何用批处理禁用本地连接啊

500分求批处理高手:系统设置,软件卸载,软件安装等操作(谢绝菜鸟滥竽充数)

如何用批处理脚本检查日志文件并发邮件

如何用批处理来安装软件?

如何用批处理写自动安装软件的脚本

CADlisp编程:如何用lisp处理一个dwg图形中的多个多线段?