![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 11:01 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批处理直接调用winrar程序 |
| 可打印版本 1,308 / 14 |
| 第1楼 kongzi | 发表于 2008-11-16 14:06 |
| 新手上路 发帖 9 积分 9 | |
|
[求助]批处理直接调用winrar程序 如何使用批处理直接调用系统的winrar程序,无论压缩程序安装到哪个盘都可以直接调用!!!
|
|
| 第2楼 balinger | 发表于 2008-11-16 14:36 |
| 中级用户 发帖 115 积分 356 | |
|
@echo off
for /f "tokens=1,2,*" %%i in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe" /ve') do set "rar=%%k" echo %rar% pause |
|
| 第3楼 kongzi | 发表于 2008-11-16 15:22 |
| 新手上路 发帖 9 积分 9 | |
|
非常感谢balinger,但是我运行了一下,为什么按任意键继续后就退出了,没有运行winrar程序呀!
|
|
| 第4楼 tireless | 发表于 2008-11-16 15:41 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
可恶的 reg.exe 的 BUG...直接 reg query 会缺字符,没办法只能先导出。 [ Last edited by tireless on 2008-11-16 at 17:38 ] |
|
| 第5楼 kongzi | 发表于 2008-11-16 15:46 |
| 新手上路 发帖 9 积分 9 | |
|
我是想写一个批处理遍历系统的rar压缩包,调用winrar命令行删除rar压缩包里的某一个文件。这个批处理如何来写。谢谢!!!winrar d 是删除压缩包里的文件。
[ Last edited by kongzi on 2008-11-16 at 15:48 ] |
|
| 第6楼 tireless | 发表于 2008-11-16 15:49 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 5楼 4 楼代码已更新。
[ Last edited by tireless on 2008-11-16 at 15:54 ] |
|
| 第7楼 kongzi | 发表于 2008-11-16 16:00 |
| 新手上路 发帖 9 积分 9 | |
|
我运行了一下报错。:(
|
|
| 第8楼 tireless | 发表于 2008-11-16 16:01 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 7楼 报错信息是?
|
|
| 第9楼 kongzi | 发表于 2008-11-16 16:02 |
| 新手上路 发帖 9 积分 9 | |
|
我再说的具体点想写一个批处理遍历系统的rar压缩包,如果压缩包里有1.exe调用winrar命令行删除rar压缩包里的1.exe这个程序。这个批处理如何来写。谢谢!!!winrar d 是删除压缩包里的文件。
|
|
| 第10楼 kongzi | 发表于 2008-11-16 16:05 |
| 新手上路 发帖 9 积分 9 | |
Originally posted by tireless at 2008-11-16 04:01 PM: --------------------------- C:\Program --------------------------- Windows 找不到文件 'C:\Program'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。 --------------------------- 确定 --------------------------- |
|
| 第11楼 kongzi | 发表于 2008-11-16 16:07 |
| 新手上路 发帖 9 积分 9 | |
|
for /d %%i in (C,D,E,F,G,H,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z\*.rar) do (
IF exist %%i: ( winrar.exe d %%c\*.rar 1.exe ) ) 这是我写的肯定不对,这个只是遍历磁盘根目录下的压缩包文件。 |
|
| 第12楼 tireless | 发表于 2008-11-16 16:09 |
| 银牌会员 发帖 1,122 积分 2,025 | |
Originally posted by kongzi at 2008-11-16 04:05 PM: 不好意思,弄错了个地方。再试试 4 楼的代码。 |
|
| 第13楼 kongzi | 发表于 2008-11-16 16:24 |
| 新手上路 发帖 9 积分 9 | |
|
非常感谢tireless程序可以运行了,但是好像没有实现我的预期的效果。
|
|
| 第14楼 kongzi | 发表于 2008-11-16 16:41 |
| 新手上路 发帖 9 积分 9 | |
|
我结合了一下,好像不行,那位高人给调试一下 for /d %%i in (C,D,E,F,G,H,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z\*.rar) do (
IF exist %%i: (if exist "C:\Program Files\WinRAR\WinRAR.exe" ( set WinRAR_Path=C:\Program Files\WinRAR\WinRAR.exe ) else ( reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe" tmp.reg >nul for /f "skip=3 delims== tokens=2" %%a in ('type tmp.reg') do ( set WinRAR_Path=%%~a call set WinRAR_Path=%%WinRAR_Path:\\=\%% goto next ) ) :next start "" "%WinRAR_Path%" d "%%c\*.rar" "1.exe" del tmp.reg ) ) |
|
| 第15楼 tireless | 发表于 2008-11-16 17:13 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
这个是只搜索盘符根目录下的 .rar 文件:
如果要搜索包括子目录的 .rar 文件,将: for %%a in (%%A:\*.rar) 改为: for /r %%A: %%a in (*.rar) [ Last edited by tireless on 2008-11-16 at 17:35 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |