中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-01 21:17
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样判断机器里是否已经安装了某个软件?
可打印版本  1,246 / 7
第1楼 numen 发表于 2006-07-18 15:13
初级用户 发帖 13 积分 46
怎样判断机器里是否已经安装了某个软件?
大家好:
(在实践中学习真是一种乐趣. 感言)
个人做了一个小程序A,但需要另一个软件B的配合才行. 程序A和B都放在u盘里.
所谓的配合就是指B程序只需在一台机器上安装一次即可,下次启用A程序时就不再需再安装B了.(机器环境为win..系统.)
现在的想法就是:一个批处理首先先判断一下机器中B软件安装了没有,安装了则调用程序A,若没有则安装B,然后再调用A.(一般情况下第一次使用大多都是要安装B的)
曾经想过在u盘中作个文件,其实就是起标识符的作用:安装了B后就创建一个文件.然后每次启动批处理,就以这个文件存不存在作为判断的依据.但是在换了一台机器使用的情况下,就会出现误判断.
谢谢大家.!
请多指教.
第2楼 namejm 发表于 2006-07-18 18:17
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  请问B程序是强制安装在固定位置吗?如果是这样的话,那就好办得多;如果是可以指定任意位置,则会耗费大量的搜索时间。

  假设是在固定位置:


  假设程序B安装在可选位置:


[ Last edited by namejm on 2006-7-19 at 13:25 ]
第3楼 numen 发表于 2006-07-19 09:21
初级用户 发帖 13 积分 46
我的神啊~~真牛

苦学中...谢谢
第4楼 numen 发表于 2006-07-19 09:41
初级用户 发帖 13 积分 46
还好是固定位置...:lol:
第5楼 namejm 发表于 2006-07-19 13:24
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  今天发现2楼的第二个代码有一处错误,将导致代码出错,具体是set enabledelayedexpansion这一句中,误把setlocal写成了set了,现已经更正,请重新测试。
第6楼 willsort 发表于 2006-07-19 13:45
元老会员 发帖 1,512 积分 4,432
Re namejm:

其实标记不一定要在安装文件夹下的,可以在注册表的固定键值下,也可以在应用软件的共享目录下(比如CommonProgramFiles),这样判定起来会简单的多。如果想增加这种方法的安全性,可以将标记设定为一个指出程序安装路径和安装文件的数据或程序文件,以方便进行本地化的存在性判定。
第7楼 namejm 发表于 2006-07-19 14:59
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Re willsort:

  好久不见老大现身了:)

  是不是所有安装好的程序都会出现在注册表的固定位置或者是应用软件的共享目录下?对注册表和应用程序的共享目录不是很熟悉,请老大详细说明一下。
第8楼 fastslz 发表于 2006-07-19 16:30
铂金会员 发帖 2,315 积分 5,493 来自 上海
利用注册表判断是否安装谷歌工具条2例

或者:
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023