Board logo

标题: [已解决]在命令行下查询并获得RAR.EXE的路径同时用RAR在命 [打印本页]

作者: flying008     时间: 2006-7-19 14:42    标题: [已解决]在命令行下查询并获得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 ]
作者: bagpipe     时间: 2006-7-19 16:05
@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文件,其他盘没有检查
作者: flying008     时间: 2006-7-20 12:21
谢谢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 ]
作者: namejm     时间: 2006-7-20 13:05
  实际上,bagpipe的代码是把rar.exe所在的目录保存下来了,并没有含rar.exe。
作者: flying008     时间: 2006-7-21 07:55
谢谢bagpipe和namejm,
问题解决了……是空格的原因,
作者: IceCrack     时间: 2006-7-22 09:18
@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 ]
作者: namejm     时间: 2006-7-22 11:16
  在注册表里搜索,确实会快得多。
作者: flying008     时间: 2006-7-22 11:43
问题是这个软件有很多绿色版本的,没有在注册表里,
作者: IceCrack     时间: 2006-7-22 12:10
我觉得吧  不管是你是否安装了他.只要你运行过一次.他都会出现这个路径的.   楼上的可以一试