会批处理的大佬帮忙修改一下
通过bat检查电脑是否有安装adobe的产品,产口包括(Acrobat Pro、Photoshop、Illustrator、InDesign),如果有安装,就显示已安装,没有就显示未安装。要win10和11都能使用。以下是我网上找的二段bat
第一段,win10上运行正常,运行后列出来了电脑上所有安装的大部分软件,并导出到了记事本。
@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
第二段,目前我win10上运行无效,没任何反应。
@echo off
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\|find /i sogou inputnul 2nul
if %errorlevel%==0 (echo 搜狗拼音输入法:是) else echo 搜狗拼音输入法:否
echo.
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\|find /i {052CFB79-9D62-42E3-8A15-DE66C2C97C3E}nul 2nul
if %errorlevel%==0 (echo QQ:是) else echo QQ:否
echo.
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\|find /i 360sdnul 2nul
if %errorlevel%==0 (echo 360杀毒:是) else echo 360杀毒:否
echo.
pause
exit
以上二个bat都不能完全达到目的,会bat的大佬帮忙看看,要能在win10和win11上都能运行,只列出adobe系列的软件是否安装并导出到记事本。谢谢了!
本帖最后由 wudi6160096 于 2022-11-13 16:46 编辑
安装版检测的话建议用 “wmic product”(新版本中为 wmi) 。
PowerShell "Get-WmiObject Win32_Product | Select-Object Name"
PowerShell Get-CimInstance Win32_Product
另外仅查看注册表的话会检测不到绿色版,有需求的话外加对软件特征的检测会比较好。
搜索注册表就行 本帖最后由 zsqzsqzsqzsq 于 2022-11-13 09:42 编辑
@echo off
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s 2>nul|find /i "sogou input" >nul 2>nul
if errorlevel 1 (echo;搜狗拼音输入法:否) else (echo;搜狗拼音输入法:是)
echo.
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s 2>nul|find /i "{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}" >nul 2>nul
if errorlevel 1 (echo;QQ:否) else (echo;QQ:是)
echo.
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s 2>nul|find /i "360sd" >nul 2>nul
if errorlevel 1 (echo;360杀毒:否) else (echo;360杀毒:是)
echo.
pause
exit 有点高深! 本帖最后由 zsqzsqzsqzsq 于 2022-11-13 09:50 编辑
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
分支也是要搜索的。
如果注册表没有搜索到,建议用where命令搜索指定分区上的指定文件。比如:
SET "QQ="reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s 2>nul|find /i "{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}" >nul 2>nul
if errorlevel 1 (
FOR /F "TOKENS=* DELIMS=" %%? IN ('where /r "%systemdrive%\\" qq.exe 2^>nul') do (SET "QQ=%%?")
if defined QQ (echo;QQ:是) else (echo;QQ:否)
) else (echo;QQ:是)
膜拜高深大神 新版本WIN10,不支持 wmic 命令 zsqzsqzsqzsq 发表于 2022-11-13 09:33 https://bbs.pcbeta.com/static/image/common/back.gif
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
分支也是要搜索的。
如果注册表 ...
谢谢大佬,刚运行了一下,QQ有安装,但没搜索到 wudi6160096 发表于 2022-11-13 06:15 https://bbs.pcbeta.com/static/image/common/back.gif
安装版检测的话建议用 “wmic product”(新版本中为 wmi) 。
谢谢,暂不考虑绿色软件的话,该如何写 hzylhm 发表于 2022-11-13 20:35 https://bbs.pcbeta.com/static/image/common/back.gif
谢谢大佬,刚运行了一下,QQ有安装,但没搜索到
把"{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}"更换成QQ卸载程序的GUID,或直接更换成"QQ" 批处理看来还有生命力。 本帖最后由 wudi6160096 于 2022-11-25 01:08 编辑
hzylhm 发表于 2022-11-13 20:37 https://bbs.pcbeta.com/static/image/common/back.gif
谢谢,暂不考虑绿色软件的话,该如何写
@echo off 2>nul 3>nul
pushd "%~dp0"
for /F "tokens=1-5 delims= " %%a in ('start/B powershell "gwmi Win32_Product|Select-Object Name"') do if /I "%%a"=="Adobe" set %%b%%c%%d%%e=1
(for %%# in (AcrobatDC Photoshop Illustrator InDesign) do if defined %%# (echo 已安装 Adobe %%#) else echo 未安装 Adobe %%#)>>op.txt
exit--------------
详解:关闭打印与错误输出
设置当前批处理目录为默认输出目录(可避免因路径名含特殊符号导致的错误)
调用 WMI 获取已安装程序列表,将包含 Adobe 的程序记录至同名变量
如果存在 AcrobatDC Photoshop Illustrator InDesign 的变量名,输出“已安装+Adobe+变量名”到文件 op.txt,否则输出“未安装+Adobe+变量名”到文件 op.txt
退出程序(缺少此语句将在被外部调用时出错)注意事项:
· 因含中文需保存为 ANSI 编码;
· 如需支持非中文环境可更改文中“已安装” “未安装”为英文“is installed” “is not installed”;
· 可根据实际需求增减需要检测的产品(去掉名称间空格)。
如果效果满意请打赏支持下。
本帖最后由 hzylhm 于 2022-11-15 00:37 编辑
wudi6160096 发表于 2022-11-14 11:18 https://bbs.pcbeta.com/static/image/common/back.gif
--------------
详解:注意事项:
谢谢大佬写的这么详细 ,我运行测试后,显示都未安装,但其中有一个是已经安装了的
本帖最后由 wudi6160096 于 2022-11-15 07:23 编辑
hzylhm 发表于 2022-11-15 00:33 https://bbs.pcbeta.com/static/image/common/back.gif
谢谢大佬写的这么详细 ,我运行测试后,显示都未安装,但其中有一个是已经安装了的
请认真阅读注意事项。
此外,Adobe Acrobat 产品线有多个产品,你需要正确书写产品名称,如果需要检测的是 Acrobat DC 则应在第7行添加AcrobatDC 。
例如:
...
(for %%# in (AcrobatPro Photoshop Illustrator InDesign) do if defined %%# (echo 已安装 Adobe %%#) else echo 未安装 Adobe %%#)>>op.txt
...改为
...
(for %%# in (AcrobatDC Photoshop Illustrator InDesign) do if defined %%# (echo 已安装 Adobe %%#) else echo 未安装 Adobe %%#)>>op.txt
...
wudi6160096 发表于 2022-11-15 06:44 https://bbs.pcbeta.com/static/image/common/back.gif
请认真阅读注意事项。
此外,Adobe Acrobat 产品线有多个产品,你需要正确书写产品名称,如果需要检测 ...
抱歉,是我搞错了, 没看清楚,名称间不能有空格,AcrobatPro和AcrobatDC都写上就行 wudi6160096 发表于 2022-11-14 11:18 https://bbs.pcbeta.com/static/image/common/back.gif
--------------
详解:注意事项:
你的收款码该更新一下了,显示门店交易状态异常 本帖最后由 wudi6160096 于 2022-11-16 09:18 编辑
hzylhm 发表于 2022-11-15 23:12 https://bbs.pcbeta.com/static/image/common/back.gif
抱歉,是我搞错了, 没看清楚,名称间不能有空格,AcrobatPro和AcrobatDC都写上就行
不过 Adobe Acrobat 产品线也确实太过复杂,随便查了一下就发现有:
Acrobat Reader
Acrobat Reader DC
Acrobat Standard DC
Acrobat Pro
Acrobat Pro DC
Acrobat DC
Acrobat X (已过时)
Acrobat XI(已过时)
Reader X(已过时)
Reader XI(已过时)
...
另外更新了下之前的代码:
· 提升效率(添加多线程)
· 提升对长产品名称的支持(最大支持至4组字符,例如 Real-Time Customer Data Platform)
收款码更新了,麻烦再试一下。
wudi6160096 发表于 2022-11-16 09:05 https://bbs.pcbeta.com/static/image/common/back.gif
不过 Adobe Acrobat 产品线也确实太过复杂,随便查了一下就发现有:
Acrobat Reader
好的,谢谢,有段时间没上来了,没注意看,虽然最后用了另一个论坛里的批处理,但还是感谢大佬热心的回复,微信已打赏,不多,大佬别见怪!!
页:
[1]