
@echo off & setlocal enabledelayedexpansion
title 已安装程序列表获取脚本 By 依梦琴瑶
:: 设置日志文件保存路径,不存在时会自动创建
set LogSaveDir=D:\MyLog
set UnKey=Microsoft\Windows\CurrentVersion\Uninstall
if /i "%PROCESSOR_IDENTIFIER:~,3%"=="x86" goto x86
echo 正在努力获取本机已安装程序列表,请稍后。。。
(echo Name^|^|Version^|^|Publisher^|^|InstallDate
for /f "delims=" %%i in ('reg query "HKLM\SOFTWARE\%UnKey%"') do (
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayName 2^>nul') do (
set "Name=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayVersion 2^>nul') do (
set "Version=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v Publisher 2^>nul') do (
set "Publisher=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v InstallDate 2^>nul') do (
set "InstallDate=%%~k"
)
if not defined Name set Name=未知程序名
if not defined Version set Version=未知版本号
if not defined Publisher set Publisher=未知发布者
if not defined InstallDate set InstallDate=未知安装时间
if not "!Name!||!Version!||!Publisher!||!InstallDate!"=="未知程序名||未知版本号||未知发布者||未知安装时间" echo !Name!^|^|!Version!^|^|!Publisher!^|^|!InstallDate!
set "Name=" & set "Version=" & set "Publisher=" & set "InstallDate="
))>ymqy$
(for /f "delims=" %%i in ('reg query "HKLM\SOFTWARE\Wow6432Node\%UnKey%"') do (
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayName 2^>nul') do (
set "Name=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayVersion 2^>nul') do (
set "Version=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v Publisher 2^>nul') do (
set "Publisher=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v InstallDate 2^>nul') do (
set "InstallDate=%%~k"
)
if not defined Name set Name=未知程序名
if not defined Version set Version=未知版本号
if not defined Publisher set Publisher=未知发布者
if not defined InstallDate set InstallDate=未知安装时间
if not "!Name!||!Version!||!Publisher!||!InstallDate!"=="未知程序名||未知版本号||未知发布者||未知安装时间" echo !Name!^|^|!Version!^|^|!Publisher!^|^|!InstallDate!
set "Name=" & set "Version=" & set "Publisher=" & set "InstallDate="
))>>ymqy$
(for /f "delims=" %%i in ('reg query "HKCU\SOFTWARE\%UnKey%"') do (
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayName 2^>nul') do (
set "Name=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayVersion 2^>nul') do (
set "Version=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v Publisher 2^>nul') do (
set "Publisher=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v InstallDate 2^>nul') do (
set "InstallDate=%%~k"
)
if not defined Name set Name=未知程序名
if not defined Version set Version=未知版本号
if not defined Publisher set Publisher=未知发布者
if not defined InstallDate set InstallDate=未知安装时间
if not "!Name!||!Version!||!Publisher!||!InstallDate!"=="未知程序名||未知版本号||未知发布者||未知安装时间" echo !Name!^|^|!Version!^|^|!Publisher!^|^|!InstallDate!
set "Name=" & set "Version=" & set "Publisher=" & set "InstallDate="
))>>ymqy$
goto SortingList
:x86
(echo Name^|^|Version^|^|Publisher^|^|InstallDate
for /f "delims=" %%i in ('reg query "HKLM\SOFTWARE\%UnKey%"') do (
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayName 2^>nul') do (
set "Name=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayVersion 2^>nul') do (
set "Version=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v Publisher 2^>nul') do (
set "Publisher=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v InstallDate 2^>nul') do (
set "InstallDate=%%~k"
)
if not defined Name set Name=未知程序名
if not defined Version set Version=未知版本号
if not defined Publisher set Publisher=未知发布者
if not defined InstallDate set InstallDate=未知安装时间
if not "!Name!||!Version!||!Publisher!||!InstallDate!"=="未知程序名||未知版本号||未知发布者||未知安装时间" echo !Name!^|^|!Version!^|^|!Publisher!^|^|!InstallDate!
set "Name=" & set "Version=" & set "Publisher=" & set "InstallDate="
))>ymqy$
(for /f "delims=" %%i in ('reg query "HKCU\SOFTWARE\%UnKey%"') do (
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayName 2^>nul') do (
set "Name=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v DisplayVersion 2^>nul') do (
set "Version=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v Publisher 2^>nul') do (
set "Publisher=%%~k"
)
for /f "skip=2 tokens=2 delims= " %%j in ('reg query "%%~i" /v InstallDate 2^>nul') do (
set "InstallDate=%%~k"
)
if not defined Name set Name=未知程序名
if not defined Version set Version=未知版本号
if not defined Publisher set Publisher=未知发布者
if not defined InstallDate set InstallDate=未知安装时间
if not "!Name!||!Version!||!Publisher!||!InstallDate!"=="未知程序名||未知版本号||未知发布者||未知安装时间" echo !Name!^|^|!Version!^|^|!Publisher!^|^|!InstallDate!
set "Name=" & set "Version=" & set "Publisher=" & set "InstallDate="
))>>ymqy$
:SortingList
for /f "skip=1 tokens=1 delims=[]" %%a in ('find /n "::SortingListVBS::" "%~0"') do set Line=%%~a
more +%Line% "%~0">SortingVBS
if not exist "%LogSaveDir%" md "%LogSaveDir%"
(cscript //nologo //e:jscript "SortingVBS" < ymqy$)>"%LogSaveDir%\%COMPUTERNAME%Log"
del /f/q ymqy$ SortingVBS
echo 本机已安装程序列表已输出至 "%LogSaveDir%\%COMPUTERNAME%Log"
pause
exit
::SortingListVBS::
var i = 0, arr = [], max = [];
var reg = /[^\x00-\xff]/g;
while(!WSHStdInAtEndOfStream){
var strLine = WSHStdInReadLine();
if(!/^\s$/test(strLine)) {
arr[i] = strLinesplit('||');
for(var j=0; j<arr[i]length; j++) {
var len = arr[i][j]replace(reg, '')length;
if(!max[j] || len > max[j]) max[j] = len;
}
i++;
}
}
for(var i=0; i<arrlength; i++) {
var s = '';
for(var j=0; j<arr[i]length; j++) {
var len = max[j] - arr[i][j]replace(reg, '')length;
var space = ' ';
for (var k=0; k<len; k++) space += ' ';
s += arr[i][j] + space;
}
WScriptEcho(s);
}
最终的效果是这样的,比WMIC多了两个详细的项目,那就是软件发布者和安装时间。
电脑上安装的软件找不到安装包放哪了,怎么找
都一样,使用的时候能用就完事,过后再找很麻烦。其实,windows给我们提供了很好的搜索引擎,只是大伙都不怎么用
windows自带搜索功能, 开始-搜索。即可。
里面好几个选项。有文件名,大小,有文件类型,有创建时间,有搜索位置等。只要有个大约的范围,搜索一下不费力。比如:我只记得大约一年前我下载了某软件,是个压缩包,安装了。挺好用的。那禒软件叫 鲁大师。 然后我就在搜索项中,将时间限定在介于8个月到15个月之间,文件大小 限定在 跟 鲁大师文件大小差不多范围内, 文件名里面输入 lds ,如果找不到,我就把文件名也删掉。在搜到的文件里人工检索一下,不费力的哦~
怎么查一个软件的安装路径
常装之后都会有一个快捷方式,把鼠标放在图标上,下方就会显示改软件的安装路径,或者右击属性,里面的目标上面也有的。
如何查看软件安装在那个目录下
列举2个常用的方法如下:
1、如果该软件在系统桌面上或其他盘符里,有 快捷方式 的话,右键 快捷方式,点击 属性,即可看到该软件的安装位置等信息;
2、使用第三方安全软件(以360安全卫士为例),打开360安全卫士,找到 软件管家,选择 软件卸载,软件自动扫描后即可看到电脑所安装的大部分软件,点击你想查看的软件(别点击卸载),有个 打开安装目录 选项,点击即可查看。
如何快速查找软件安装目录
很多软件快捷方式在桌面,时间久了忘记当初安装在哪个目录。想要手动删除。不知从何下手?本例就教教大家如何利用快捷方式快速查找安装文件所在位置。
工具/原料
XP系统/win7/8都可用
方法/步骤
找到相应文件的快捷方式。(快捷方式为左下角有向上箭头标志的文件)鼠标右击 并点击属性
出现任务框,点击查找目标(WIN7/8 为打开文件位置)
d出窗口,蓝色选中处为文件位置。一般卸载的文件名称为 Uninstall
如何快速查到电脑里所有应用程序的安装路径??
控制面板-- 程序和功能,
在显示有“名称”“发布者”。。。的那一行上点右键----其他---位置
怎么查安卓手机安装软件所在目录? 70分
系统自带的软件在/system/app/里
安装在手机里的软件在/data/app里
安装在SD卡里的软件在mnt/asec/里的各自软件的文件夹里
如何查找软件的安装路径?
1、鼠标在桌面上的“软件”图标上,按右键--属性--点击“查找目标”按钮
2、在d出的窗口就是订件所有的路径及所有文件
在控制面板上怎样找到安装软件的目录
你可以用360安全卫士 或者 金山卫士、腾讯管家之类的软件,
{软件管理} - {软件卸载} - 找到软件后右键{安装目录}
-----------------------------------------------------
其实不用那么麻烦,从开始菜单里找到软件图标,然后右键属性就可以看到软件所在的位置和目录。
怎样查找电脑软件安装位置
右键点击图标,点查找目标,或者下个360之类的,软件管理里都有
怎么在文件夹里找程序的安装项??
安装项应该是应用程序,故首先看文件的扩展名,属应用程序的有exe、、bat等,再者查梗文件名,安装程序多为Install、setup等
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI
/&cls&echo off&mode con lines=5000
rem 将一个指定dat文件里指定特征字符串中部分内容替换成本机网卡mac地址
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "file=D:\xxx\licensedat"
if not exist "%file%" (echo;"%file%" 未找到&pause&exit)
for /f "tokens=2 delims==" %%a in ('wmic NIC where "NetEnabled=TRUE and PhysicalAdapter=True" get MACAddress /value^|find "="') do set "mac=%%a"
type "%file%"|cscript -nologo -e:jscript "%~f0" "%mac%"
echo;%#% +%$%%$%/%_% %z%
pause
exit
/
var text=WSHStdInReadAll(),mac=WSHArguments(0)replace(/[:-]/g,'');
text=textreplace(/(HOSTID=)[0-9A-Z]+/ig,function(a,b){return b+mac;});
WSHStdErrWriteLine(text);
以上就是关于如何通过bat导出windows已安装程序列表,并且保存为文件名为计算机名.log到指定的目录下全部的内容,包括:如何通过bat导出windows已安装程序列表,并且保存为文件名为计算机名.log到指定的目录下、如何查找软件安装目录、可以帮忙写个BAT获取MAC地址替换到license.dat文件里面吗,批量安装的软件,需要一个脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)