Board logo

标题: [文件操作] 求:批处理压缩文件夹里面的文件 [打印本页]

作者: wbyz20    时间: 2013-7-6 15:47     标题: 求:批处理压缩文件夹里面的文件

本帖最后由 wbyz20 于 2013-7-11 22:41 编辑

批处理用winrar压缩文件夹里面的文件,每个文件打一个压缩包并用 最好 压缩方式压缩。压缩后的文件名用压缩前的文件名。
作者: wbyz20    时间: 2013-7-11 22:42

哪位搞手知道,我试了好多只能把整个文件夹压缩打包,不能把文件夹里面的文件,一个文件打一个包,在线等。谢谢
作者: apang    时间: 2013-7-11 23:24

  1. @echo off
  2. set "rar=c:\program files\winrar\rar.exe"
  3. pushd "d:\abc\"
  4. md "New\" 2>nul
  5. for %%a in (*) do "%rar%" a -m5 "New\%%~na" "%%a"
  6. start "" "New\"
复制代码
更改d:\abc\为实际路径
作者: wbyz20    时间: 2014-9-15 07:39

更改d:\abc\为实际路径
apang 发表于 2013-7-11 23:24



    这个可以压缩,但每次它都会把已压缩过的再压缩一次
作者: apang    时间: 2014-9-15 10:11

卧槽,2楼不是说在线等答案吗?一等就是一年多
请继续等待,明年今日,我会想出答案,嗯嗯
作者: DAIC    时间: 2014-9-15 13:17

本帖最后由 DAIC 于 2014-9-15 13:19 编辑

回复 4# wbyz20
  1. @echo off
  2. set "rar=c:\program files\winrar\rar.exe"
  3. pushd "d:\abc\"
  4. if exist New\ (
  5.     echo 我要删除文件夹 New
  6.     pause
  7.     rd /s /q New
  8. )
  9. md "New\" 2>nul
  10. for /f "delims=" %%a in ('dir /b /a-d ^| findstr /v ".rar$"') do (
  11.     "%rar%" a -m5 "New\%%~na" "%%a"
  12. )
  13. start "" "New\"
复制代码

作者: wbyz20    时间: 2014-9-20 11:52

回复 6# DAIC


    是这个的:我的msmql数据库备份,每天晚上23点备份,备份文件很大,我就用Winara进行压缩放到存储下面。用了三楼 apang 的脚本可以打包,我用win定时任务23:30启动,但每次打包他会把已打包的文件再一次全部重新打包一次。我的要求是已打包过的文件不要再打包了。
作者: DAIC    时间: 2014-9-20 18:56

回复 7# wbyz20


    你测试6楼代码的时候发现什么问题了?
作者: wbyz20    时间: 2014-9-23 16:16

回复 8# DAIC


这个代码还是有问题,他会把这个文件夹删除了,又重头到尾把一次包

这个文件夹就是mssql备份,每天会备份一次。如果打过包的就不要重新打包了。
作者: CrLf    时间: 2014-9-23 17:28

回复 9# wbyz20


    你自己在顶楼没讲清楚,6 楼是特地写了删除 new 文件夹的,3 楼代码虽然会重复压缩,但在背景未知的情况下也是无从挑剔的。
    求助要描述到位,别人不可能预见特殊情况下的特殊要求,如果不是很明确地知道楼主的需求,我们只能优先考虑通用性,其次才是效率。
作者: 523066680    时间: 2014-9-23 18:05

诈尸?
作者: yu2n    时间: 2014-9-23 18:45

我觉得楼主强烈需求一个批处理编写的备份管理软件,尽管它的核心是盗版的 rar.exe 。
So,带价联系我吧 ……
作者: xxpinqz    时间: 2014-9-24 17:46

你们太坏了,估计楼主又要明年才出现了。
作者: wbyz20    时间: 2014-9-24 22:38

哪位帮我整下,谢谢了
作者: CrLf    时间: 2014-9-24 23:43

回复 14# wbyz20


借 6 楼代码小改一下
  1. @echo off
  2. set "rar=c:\program files\winrar\rar.exe"
  3. pushd "d:\abc\"
  4. md "New\" 2>nul
  5. for /f "delims=" %%a in ('dir /b /a-d ^| findstr /v ".rar$"') do (
  6.     if not exist "New\%%~na.rar" "%rar%" a -m5 "New\%%~na" "%%a"
  7. )
  8. start "" "New\"
复制代码

作者: apang    时间: 2014-9-25 00:45

  1. @echo off
  2. set "rar=c:\program files\winrar\rar.exe"
  3. pushd "文件夹1\"
  4. md "New\" 2>nul
  5. for %%a in (*) do "%rar%" a -m5 -o- -x*.rar -x*.zip "New\%%~na" "%%a"
  6. start "" "New\"
复制代码
rar 的-x开关是排除,-o-是更新时不覆盖
作者: wbyz20    时间: 2014-9-26 15:38

回复 16# apang


    谢谢,楼主问题已解决,万分感谢!




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