中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]在命令行下查询并获得RAR.EXE的路径同时用RAR在命
作者:
标题: [已解决]在命令行下查询并获得RAR.EXE的路径同时用RAR在命 上一主题 | 下一主题
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『楼 主』:  [已解决]在命令行下查询并获得RAR.EXE的路径同时用RAR在命

现有一电脑XP系统,安装了WINRAR,在D盘根目录下有一个ABC.txt文件,想要写个批处理文件,作用是自动搜索RAR.exe在硬盘中的路径,并将路径内容添加到d:\abc.txt中,同时并运行RAR压缩abc.txt为123.rar,目录也在D盘下,如下:
=============
@echo off
搜索rar和winrar在系统中的安装路径
将路径内容(c:\myapps\winrar.exe)添加到d盘的abc.txt中  >>d:\abc.txt
安装路径\rar a d:\123 d:\abc.txt
exit
=============
因为RAR必须在安装目录下才能运行,所以最后一句要在程序之前加上完整的安装路径的,请教各位大大,该如何写这个批处理文件?谢谢……

[ Last edited by flying008 on 2006-7-21 at 07:55 ]

2006-7-19 14:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 2 楼』:  

@echo off
setlocal
pushd c:\
for /f "tokens=1 delims=的" %%a in ('dir /a /s rar.exe^|findstr "的目录"') do (
echo %%a>>d:\abc.txt&&set a=%%a
)
pushd %a%
rar a  d:\123.rar d:\abc.txt
popd
popd

粗略一写,不知道效果如何..............只检测了C盘有无RAR文件,其他盘没有检查

2006-7-19 16:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『第 3 楼』:  

谢谢bagpipe,
关于start c:\program files\winrar\rar.exe a 123 123.txt
为什么这个语句不能执行?在WINDOWS下跳出对话框:系统找不到PROGRAM文件夹是否存在,请搜索……
问题就是这个路径中含有空格吗?

[ Last edited by flying008 on 2006-7-20 at 13:23 ]

2006-7-20 12:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 4 楼』:  

  实际上,bagpipe的代码是把rar.exe所在的目录保存下来了,并没有含rar.exe。

2006-7-20 13:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『第 5 楼』:  

谢谢bagpipe和namejm,
问题解决了……是空格的原因,

2006-7-21 07:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
IceCrack
中级用户

DOS之友


积分 332
发帖 168
注册 2005-10-6
来自 天涯
状态 离线
『第 6 楼』:  

@echo off
for /f "skip=4 tokens=3 delims= " %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe" /v "path" ') do echo %%i >>d:\abc.txt&&set rarpath=%%i
"%rarpath%\rar.exe" a  d:\123 d:\abc.txt
pause
呵呵  换一种思维.这个我觉得应该会快一点吧

[ Last edited by IceCrack on 2006-7-22 at 09:20 ]

2006-7-22 09:18
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (369525996)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 7 楼』:  

  在注册表里搜索,确实会快得多。

2006-7-22 11:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『第 8 楼』:  

问题是这个软件有很多绿色版本的,没有在注册表里,

2006-7-22 11:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
IceCrack
中级用户

DOS之友


积分 332
发帖 168
注册 2005-10-6
来自 天涯
状态 离线
『第 9 楼』:  

我觉得吧  不管是你是否安装了他.只要你运行过一次.他都会出现这个路径的.   楼上的可以一试

2006-7-22 12:10
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (369525996)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: