Board logo

标题: [文件操作] [已解决]批处理怎样把RAR自解压文件解压到当前文件夹? [打印本页]

作者: zcdyj    时间: 2011-4-29 17:22     标题: [已解决]批处理怎样把RAR自解压文件解压到当前文件夹?

例如我有两个自解压文件1.exe 9.exe 里面是1.txt  9.txt 没有文件夹的
用这条命令 for %%a in (*.exe) do "C:\Program Files\WinRAR\rar.exe" x "%%a"     可以解压到当前文件夹
但是我想解压出来有1的文件夹 里面有1.txt 有9的文件夹 里面有9.txt
请问这种要如何修改 使得解压出来的文件放在各自的文件夹里
也就是如何实现RAR中的解压到和文件名同名的文件夹
这种批处理该怎么实现 先谢谢了
测试文件 http://u.115.com/file/t25acc74f1
使用批处理后的效果 http://u.115.com/file/t2c641397e
作者: Commander    时间: 2011-4-29 17:44

  1. @echo off
  2. for %%a in (*.exe) do (
  3.     "C:\Program Files\WinRAR\rar.exe" x "%%a"
  4. )
  5. for /f "delims=" %%a in ('dir /b /a-d') do (
  6.     if exist ".\%%~na\" (
  7.         move "%%a" ".\%%~na\"
  8.     )
  9. )
复制代码

作者: zcdyj    时间: 2011-4-29 17:53

2# Commander

先谢谢Commander了 你的代码我试了不成功 不知道哪里出问题了
作者: Batcher    时间: 2011-4-29 18:07

3# zcdyj


把@echo off删掉,看看哪一步出错了。
作者: zcdyj    时间: 2011-4-29 18:52

2# Commander
可能我说的不够详细,让Commander误解了
我的意思是让1.exe解压出来能够生成1的文件夹和把1.exe里面的文件放进1的文件夹
1这个文件夹原本是没有的 要靠解压生成的
解压完后1.exe不用移动 就在原目录即可
作者: hanyeguxing    时间: 2011-4-29 20:49

本帖最后由 hanyeguxing 于 2011-4-29 21:09 编辑

楼主没有说清楚1这个目录名是根据1.txt创建还是根据1.exe创建?
如果是根据1.exe,则直接:
  1. "C:\Program Files\WinRAR\RAR.exe" x -ad *.exe
复制代码

作者: liaobiaoxing    时间: 2011-4-29 20:55

由于我的工作性质,我写了一个批处理,每一天生成以日期为目录的文件夹,我每天处理的邮件的文件都是以压缩格式放在FTP上的,我在下载完之后,在批处理里也对其进行解压操作,放在对应日期文件夹里的压缩包名称的文件夹下。比如有一个文件是20110429.rar的话,就会把RAR里的文件放在20110429的文件夹下,也许这个符合楼主的意思吧。

我用的是7zip。比如你在C盘下放了一些RAR文件。那么在C:\的目录下运行:
c:\progra~1\7-zip\7z.exe x *.rar -o*

就可以把所有对应的压缩包解压到以该压缩包为名字的文件夹下面。试一下吧。
作者: zcdyj    时间: 2011-4-29 21:58

6楼得代码测试成功了 7楼代码的也是不错的 7zip我比较少用 还是谢谢了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2