中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 有什么办法查找出某个软件的路径
« [1] [2] »
作者:
标题: 有什么办法查找出某个软件的路径 上一主题 | 下一主题
wwx0423
初级用户





积分 33
发帖 30
注册 2009-2-19
状态 离线
『楼 主』:  有什么办法查找出某个软件的路径

比如说 公司有 100台电脑, 有一个绿色软件,运行这个软件后他会自动在注册表里添加启动项。现在我想删除这个软件。但是100台计算机中路径各不一样。 我想用 批处理 来抓取路径然后删除这个软件,并且用 reg del 来删除注册表的键值。。 有什么办法可以用批处理抓取软件的路径吗? (加第三方软件的话需要什么软件?)



————————————————————————————————
转移自 DOS疑难解答 & 问题讨论 (解答室)
明显发错版块。因属论坛新手,故暂不予以处罚,望今后引起注意。
——管理员
————————————————————————————————


2009-2-23 17:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

用 reg query 命令读那个注册表键值即可



2009-2-23 18:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wwx0423
初级用户





积分 33
发帖 30
注册 2009-2-19
状态 离线
『第 3 楼』:  

但是读取的键值是有问题的呀。 比如
! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    feiQ        REG_SZ        "d:\feiq.exe" /startup


我输出后是这样的啊? 还要从那么多文字中取出他 d:\feiq.exe 那不是更麻烦?

我想实现的是。  脚本自动查找到路径后删除它。 因为有的人放D盘,有的人可能 放的文件路径很深。。

2009-2-23 18:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  

按你所说的,那也很麻烦还是算了吧



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-2-23 18:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  Re 3楼

从reg query的结果中提取字符串是很简单的,你认为简单的全盘搜索是比较复杂的。



2009-2-23 21:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wwx0423
初级用户





积分 33
发帖 30
注册 2009-2-19
状态 离线
『第 6 楼』:  

for /f "delims=" %%a in ('dir /s/b *.txt') do @echo %%~pnxa>>D:\mycomputer\Desktop\eaton\list.txt

今天在 论坛里看到这个指令。  用这个能查找到。 谢谢各位。

2009-2-24 09:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  Re 6楼

如果是500GB的硬盘,分成10个分区,你可以试试这个方案效率如何。



2009-2-24 11:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wwx0423
初级用户





积分 33
发帖 30
注册 2009-2-19
状态 离线
『第 8 楼』:  

因为这个是绿色软件, 很多人 磁盘里到处都是, 每个用户帐户下一个或多个,单单从 注册表里看 只能看到一个路径下。
我现在是这样做的。 毕竟环境不同,有的人计算机有2个磁盘 到 J 盘去了。 让计算机慢慢查找 总好过人去一台一台机找嘛。



@echo off
taskkill /f /im 飞秋FeiQ.exe
C:
CD \
cls
echo      正在删除C盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %% a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
D:
CD \
cls
echo      正在删除D盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
e:
CD \
CLS
echo      正在删除E盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
f:
CD \
CLS
echo      正在删除F盘的飞秋

for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
g:
CD \
cls
echo      正在删除G盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
h:
CD \
cls
echo      正在删除H盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
i:
cd \
CLS
echo      正在删除I盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
j:
CD \
CLS
echo      正在删除J盘的飞秋
for /f "delims=" %%a in ('dir /s/b 飞秋FeiQ.exe') do echo %%a>d:\list.txt
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
del d:\list.txt
cls
ECHO   删除成功!以下是删除注册表键值,可能会失败,
ECHO   如果失败请联系MIS。按任意键开始执行删除注册表键值!
pause
cls
reg delete hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v FEIQ /f
echo   上面提示是否成功? 如果不成功请联系MIS。谢谢
pause

2009-2-24 11:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wwx0423
初级用户





积分 33
发帖 30
注册 2009-2-19
状态 离线
『第 9 楼』:  

公司已经明文不准使用这个了,。 因为公司有 OC 。
但是这个软件 因为会自动写注册表,如果是从邮箱里直接运行的这个软件,它还会自动复制到 TEMP 里面 而且一直存在TEMP里, 计算机一开就自动启动 ,公司很多人都不用它,可它还是会自动运行。 如果要我们一台一台去删, 全公司 4000多电脑啊。 最少也有一半人 计算机有 这个飞秋 而不会删的。

2009-2-24 11:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  Re 9楼

遍历C~Z盘,用一个for即可,搜索一下“全盘”,能够找到不少例子。



2009-2-24 13:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  

win2003有个很好用的命令where

  Quote:
D:\>where reg*.exe
C:\WINDOWS\system32\reg.exe
C:\WINDOWS\system32\regedt32.exe
C:\WINDOWS\system32\regini.exe
C:\WINDOWS\system32\register.exe
C:\WINDOWS\system32\regsvr32.exe
C:\WINDOWS\system32\regwiz.exe
C:\WINDOWS\regedit.exe

D:\>



2009-2-26 06:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dslz666
中级用户





积分 233
发帖 117
注册 2007-11-28
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by wwx0423 at 2009-2-24 11:49 AM:
因为这个是绿色软件, 很多人 磁盘里到处都是, 每个用户帐户下一个或多个,单单从 注册表里看 只能看到一个路径下。
我现在是这样做的。 毕竟 ...

把楼主的代码精简一下
@echo off
taskkill /f /im 飞秋FeiQ.exe
echo 正在删除飞秋FeiQ请稍等....
echo.>d:\list.txt

set dv=c d e f g h j k l m n
for %%d in (%dv%) do (
   if exist %%d:\nul dir %%d:\飞秋FeiQ.exe /s /b >>d:\list.txt
)
for /f "delims=" %%a in (d:\list.txt) do del /f "%%a"
cls
ECHO   删除成功!以下是删除注册表键值,可能会失败,
ECHO   如果失败请联系MIS。按任意键开始执行删除注册表键值!
pause
cls
reg delete hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v FEIQ /f
echo   上面提示是否成功? 如果不成功请联系MIS。谢谢
pause
[ Last edited by dslz666 on 2009-2-26 at 08:31 ]

2009-2-26 08:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 13 楼』:  

无论这个程序是否是绿色的,只要他运行过,你就可以在hkcu\Software\Microsoft\Windows\ShellNoRoam\MUICache下看到他

2009-3-3 19:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
QOIQoc
初级用户





积分 48
发帖 51
注册 2009-3-3
状态 离线
『第 14 楼』:  



reg query hkcu\Software\Microsoft\Windows\ShellNoRoam\MUICache|find /i "飞秋FeiQ.exe"
如何读取键名?

2009-3-7 02:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Numberone
新手上路





积分 25
发帖 13
注册 2009-3-6
来自 福建
状态 离线
『第 15 楼』:  

感觉超难的样子啊!!!

2009-3-7 05:29
查看资料  发送邮件  发短消息 网志  OICQ (962225537)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: