标题: [文件操作] 批处理如何写解压并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
- @echo off
-
- set m=%date:~5,2%
- set d=%date:~8,2%
-
- start WinRAR.exe x %m%%d%.rar D:\lhl\KXZ\
-
- 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 - @echo off
- set m=%date:~5,2%
- set d=%date:~8,2%
- REM 下面设置成你自己的桌面路径,比如我的是:
- set "fileFolder=C:\users\DAIC\桌面"
- WinRAR.exe x "%fileFolder%\%m%%d%.rar" D:\lhl\KXZ\
复制代码
作者: g99 时间: 2013-12-4 10:34
回复 11# quartz123 - @echo off
-
-
-
- set m=%date:~5,2%
-
- set d=%date:~8,2%
-
-
-
- start WinRAR.exe x %userprofile%/Desktop/%m%%d%.rar D:\lhl\KXZ\
-
-
-
- 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
使用完整路径,比如:- "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 - "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 编辑
- @echo off
- set "md=%date:~5,2%%date:~8,2%"
- start /w "" WinRAR.exe x -o+ "%userprofile%/Desktop/%md%.rar" "D:\lhl\KXZ\"
- move "%userprofile%/Desktop/%m%%d%.rar" "U盘路径"
- pause
复制代码
U盘路径要改成实际路径
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |