Board logo

标题: [文件操作] 批处理如何写解压并COPY到指定文件夹内,感谢! [打印本页]

作者: quartz123    时间: 2013-12-3 17:32     标题: 批处理如何写解压并COPY到指定文件夹内,感谢!

每天都要下载一个数据压缩包,下载了后要先解压再copy,此包每天是以日期来命名的,如今天下载的就是1203,解压后“F:\桌面\1203\data”里面还有三个文件夹,只需要把解压后里面的"data\"里的三个文件夹copy到指定的文件夹:"D:\lhl\KXZ\data"下面就行了;

如果不能每天自动根据日期来解压,需要手动更改日期的话也没问题,主要是不会写,求助,感谢!
作者: DAIC    时间: 2013-12-3 17:46

1203.rar?
还是1203.zip?
你是用WinRAR解压缩吗?
作者: quartz123    时间: 2013-12-3 21:19

回复 2# DAIC


    一般压缩的格式是rar,最好请老师帮写两个,一个rar的,一个zip的,我解压用的是rar,感谢!
作者: DAIC    时间: 2013-12-3 21:34

回复 3# quartz123


echo %date%
结果是什么?
作者: g99    时间: 2013-12-3 21:43

  1. @echo off
  2. set m=%date:~5,2%
  3. set d=%date:~8,2%
  4. start WinRAR.exe x %m%%d%.rar D:\lhl\KXZ\
  5. pause
复制代码

作者: quartz123    时间: 2013-12-3 22:19

g99 发表于 2013-12-3 21:43



太牛啦!谢谢老师!
顺便问下:这个语句全自动吗?如果下载的文件日期变了也没问题吗?或者是下载的时候路径没放在桌面上也没问题吗?

再次感谢!
作者: quartz123    时间: 2013-12-3 22:20

回复 4# DAIC


    老师太精炼了。。我是新手看不太懂。。
作者: g99    时间: 2013-12-3 22:40

回复 6# quartz123
bat和待解压文件需要在一个文件夹

日期就是当天的日期
作者: DAIC    时间: 2013-12-4 08:55

回复 7# quartz123


在CMD窗口里面执行命令:
echo %date%
结果是什么?
作者: quartz123    时间: 2013-12-4 09:14

回复 9# DAIC
作者: quartz123    时间: 2013-12-4 09:16

回复 8# g99


哦,原来是这样,老师能不能再帮改一下,一般下载的需要解压的文件都是放在桌面,但批处理文件我都是统一放在D盘上的某文件夹内,当然也有可能在其他盘的其他文件夹内,感谢!
作者: DAIC    时间: 2013-12-4 09:20

回复 11# quartz123
  1. @echo off
  2. set m=%date:~5,2%
  3. set d=%date:~8,2%
  4. REM 下面设置成你自己的桌面路径,比如我的是:
  5. set "fileFolder=C:\users\DAIC\桌面"
  6. WinRAR.exe x "%fileFolder%\%m%%d%.rar" D:\lhl\KXZ\
复制代码

作者: g99    时间: 2013-12-4 10:34

回复 11# quartz123
  1. @echo off
  2. set m=%date:~5,2%
  3. set d=%date:~8,2%
  4. start WinRAR.exe x %userprofile%/Desktop/%m%%d%.rar D:\lhl\KXZ\
  5. pause
复制代码

作者: quartz123    时间: 2013-12-4 10:46

回复 13# g99

回复 12# DAIC

谢谢楼上两位老师!评分不够了,过天来加!
作者: quartz123    时间: 2013-12-4 17:33

回复 12# DAIC

回复 13# g99


不好意思,还有点小问题求助!
我自己在后面加了两句话
第一句是把下载的这个解压文件copy到U盘
第二句是把下载的这个解压文件删除掉
可是问题来了,第一句已实现,但由于下载的解压文件,解压的时间大概需要2分钟时间,那么在解压的过程中,第二句话就执行不了,有什么办法能让此语句在解压完成后再执行吗?

PS:还有个问题是,每次执行都在如图的选项,其实每次都可以选择“全部选是”的,这还能不能实现呢?

再次感谢老师们!
作者: DAIC    时间: 2013-12-4 17:41

回复 15# quartz123


    把start删掉
作者: quartz123    时间: 2013-12-4 19:06

回复 16# DAIC


    @echo off
    set m=%date:~5,2%
    set d=%date:~8,2%
    REM 下面设置成你自己的桌面路径,比如我的是:
    set "fileFolder=D:\桌面"
    copy "H:\ZZC\%m%%d%.rar" "D:\桌面"
    del /q "H:\ZZC\%m%%d%.rar"
    WinRAR.exe x "%fileFolder%\%m%%d%.rar" D:\lhl\kxz
    del /q "%fileFolder%\%m%%d%.rar"
    pause

去掉start后如下,请老师看下哪有问题
作者: DAIC    时间: 2013-12-4 20:11

回复 17# quartz123


使用完整路径,比如:
  1. "C:\Program Files\WinRAR\WinRAR.exe" x "%fileFolder%\%m%%d%.rar" D:\lhl\kxz
复制代码

作者: quartz123    时间: 2013-12-4 20:12

回复 16# DAIC

回复 13# g99

基本解决了,现在就是这个问题,老师们批处理能实现吗?就是直接覆盖不用提示,或是"全部选是",谢谢!
作者: quartz123    时间: 2013-12-4 20:15

回复 18# DAIC


    是,我就是这样解决的,呵呵,蒙对了,谢谢!但能不能直接覆盖或全部选是呢?
作者: DAIC    时间: 2013-12-4 20:35

回复 20# quartz123
  1. "C:\Program Files\WinRAR\WinRAR.exe" x -y "%fileFolder%\%m%%d%.rar" D:\lhl\kxz
复制代码

作者: g99    时间: 2013-12-7 13:03

回复 15# quartz123
可以用start命令,他有个参数,可以实现完成后再解压的功能
作者: lifei259    时间: 2013-12-8 16:23

本帖最后由 lifei259 于 2013-12-8 16:29 编辑
  1. @echo off
  2. set "md=%date:~5,2%%date:~8,2%"
  3. start /w "" WinRAR.exe x -o+ "%userprofile%/Desktop/%md%.rar" "D:\lhl\KXZ\"
  4. move "%userprofile%/Desktop/%m%%d%.rar" "U盘路径"
  5. pause
复制代码
U盘路径要改成实际路径




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