标题: 关于用批处理来关联Winrar并解压
[打印本页]
作者: lisyofun
时间: 2009-3-4 17:53
标题: 关于用批处理来关联Winrar并解压
请看如下:
这里guanlian.bat里的内容:
@echo off
assoc.rar=rarfile
ftype rarfile="%programfiles%\winrar\jieyarar.bat" "%1" "%*"
assoc.zip=zipfile
ftype zipfile="%programfiles%\winrar\jieyazip.bat" "%1" "%*"
@echo off
title 正在解压....
echo 正在解压,如果文件较大,可能需要一点时间.
"%programfiles%\winrar\rar" x -y "*.rar" E:\临时下载存档区 >nul 2>nul
exit
这是 jieyarar.bat 里的内容
@echo off
title 正在解压....
echo 正在解压,如果文件较大,可能需要一点时间.
"%programfiles%\winrar\rar" x -y "*.rar" E:\临时下载存档区 >nul 2>nul
exit
这是jieyazip.bat里的内容
@echo off
title 正在解压....
echo 正在解压,如果文件较大,可能需要一点时间.
"%programfiles%\winrar\winrar" x -y "*.zip" E:\临时下载存档区 >nul 2>nul
exit
我本来只想解压用户点击的那个文件的,但不知道怎么才能获取那个变量,试过%0和%1
都不行,所以只能用*.zip和*.rar替代.
现在的问题是每解压一个文件,它都会解压当前目录下所有的rar或zip文件.
请问怎么才能只解压当前点击的文件呢.
作者: lisyofun
时间: 2009-3-5 18:38
如果有什么软件或外部程序能让压缩文件解压到指定的目录也行.
作者: yishanju
时间: 2009-3-6 02:28
意思是所有压缩文件全部只能解压到一个目录里?
作者: yishanju
时间: 2009-3-6 02:33
WINRAR --设置--压缩--默认解压路径
作者: lisyofun
时间: 2009-3-6 09:21
呵呵,我的意思是,一打开一个rar文件或zip文件,它就会自动解压到指定的目录,就和自解压文件一样.
作者: yishanju
时间: 2009-3-6 19:31
-_-那就干脆做一个脚本自动把RAR.ZIP转成自解
作者: Hanyeguxing
时间: 2009-3-6 23:34
Quote: |
Originally posted by lisyofun at 2009-3-6 09:21:
呵呵,我的意思是,一打开一个rar文件或zip文件,它就会自动解压到指定的目录,就和自解压文件一样. |
|
以使用winrar.exe解压为例。
首先,假设我们要压缩并解压的文件是123.dat,期待他的解压路径为D:\hanye\guxing。首先,我们依次创建这些文件夹,然后把123.bat文件复制到该目录,将其压缩为123.rar。重点的是压缩的选项目:添加压缩时,“常规”下选择rar压缩格式,“文件”下选择“存储绝对路径”或“存储包括盘符的完全路径”。然后删除D:\hanye文件夹及其子文件夹和所有里面的文件。
在解压命令时,如下使用:
winrar.exe x -y "123.rar"
这样运行后,该123.rar就会被强制解压到D:\hanye\guxing。解压时并创建这些目录。
顺便说一点废话,用上面的方法创建的压缩文件,在我们用winrar的GUI界面解压缩时,无论使用哪个,都会创建绝对路径的目录。例如,选择解压到当前文件夹,则会在当前文件夹内生成子目录D_\hanye\guxing
至于你在1楼中说的会解压所有文件,那是因为你使用了*.rar和*.zip。
[
Last edited by Hanyeguxing on 2009-3-7 at 00:02 ]
作者: Hanyeguxing
时间: 2009-3-6 23:44
不好意思,没看明白你在1楼的意思,你是不是要使在自己的机器里,双击任意.rar 或.zip,会将其强制解压缩到某个指定的目录?
[
Last edited by Hanyeguxing on 2009-3-7 at 00:05 ]
作者: lisyofun
时间: 2009-3-7 12:38
对,我的意思是只要客人一点击rar或zip文件,它就会自己解压到E:\临时下载存档区 这个固定的文件夹,因为文件都是客人自己下载的,所以总不能让客人自己做自解压文件吧,就比如说,客人刚刚下载了一个1.rar的文件,他一打开就会自动解压到E:\临时下载存档区这个文件夹里。我现在的问题是客人如果下了两个rar以上的压缩文件,一点击的话两个都会自动解压到E:\临时下载存档区,我想让它单独解压,就和自解压文件一样。
还有如果不用*.rar或*.zip的话,根本解压不了。
作者: xswdong
时间: 2009-3-8 06:35
有点强奸民意的意思,恐怕不妥。
作者: lisyofun
时间: 2009-3-8 19:12
晕,我们这是网吧,当然有自己的考虑啊,现在讨论的是如何实现这一功能.
我现在加了一句 del /f "*.zip" 和 del /f "*.rar" 每次解压后都会删除原文件,虽然不太完美,但也还行.
作者: yishanju
时间: 2009-3-11 16:28
rar命令本身就支持解压后删除源文件
作者: lisyofun
时间: 2009-3-11 18:56
不知道怎么样才能只解压用户点击的解压文件啊。
作者: yishanju
时间: 2009-3-12 20:49
我有想法了
我懒得装虚拟机
你有没可以远程登陆的测试环境
作者: yishanju
时间: 2009-3-12 21:57
在文件夹选项-文件类型-rar 点高级,改成 "C:\Program Files\WinRAR\unrar.exe" x -o+ -y "%1" E:\临时下载存档区\
作者: lisyofun
时间: 2009-3-13 11:25
呵呵,谢谢你了,这样只要导入以下的注册表就行了
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WinRAR\shell\open\command]
@="\"C:\\Program Files\\WinRAR\\unrar.exe\" x -o+ -y \"%1\" E:\\临时下载存档区\\"
作者: yishanju
时间: 2009-3-13 12:48
好像用winrar.exe 和rar.exe也可以,解压时WINRAR.EXE 会弹图形窗口,RAR.EXE UNRAR.EXE 弹的命令行窗口
如果你试过的话,请结果给我回复一个。^_^
作者: lisyofun
时间: 2009-3-14 11:13
嗯,都行的,winrar.exe是图形界面,rar.exe是命令行界面.
作者: efrem
时间: 2009-6-15 03:00
求大侠们帮帮忙,我要的程序是:解压指定目录下当天更新的压缩文件到指定目录下
[
Last edited by efrem on 2009-6-15 at 03:24 ]
作者: 不得不爱
时间: 2009-6-16 00:53
ftype winrar="C:\Program Files\WinRAR\WinRAR.exe" x -y "%1" E:\临时下载区
ftype WinRAR.ZIP="C:\Program Files\WinRAR\WinRAR.exe" x -y "%1" E:\临时下载区
作者: wolfkin911
时间: 2009-6-16 02:50
Quote: |
Originally posted by lisyofun at 2009-3-4 17:53:
这是jieyazip.bat里的内容
@echo off
title 正在解压....
echo 正在解压,如果文件较大,可能需要一点时间.
"%programfiles%\winrar\winrar" x -y "*.zip" E:\临时下载存档区 >nul 2>nul
exit
我本来只想解压用户点击的那个文件的,但不知道怎么才能获取那个变量,试过%0和%1
都不行,所以只能用*.zip和*.rar替代.
现在的问题是每解压一个文件,它都会解压当前目录下所有的rar或zip文件.
请问怎么才能只解压当前点击的文件呢. |
|
就是%1
"%programfiles%\winrar\winrar" x -y "%1" E:\临时下载存档区
作者: efrem
时间: 2009-6-16 04:47
怎么没人理我啊?
作者: wayaoqiang
时间: 2009-6-16 05:09
思路不错,可以做病毒。