Board logo

标题: [文本处理] win7系统bat复制前两月文件夹下的所有文件,代码怎么写? [打印本页]

作者: 7016427    时间: 2015-9-1 19:26     标题: win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

我想9月要复制e:\外勤\前两月下所有文件(也就是9月复制e:\外勤\2015\07\ ),复制到f:\
请问老师,这个批处理文件怎么写?
作者: CrLf    时间: 2015-9-1 20:27

本帖最后由 CrLf 于 2015-9-1 20:32 编辑
  1. @echo off
  2. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  3. if %m% lss 101 set /a y-=1,m+=12
  4. xcopy /y "e:\外勤\%y%\%m:~-2%\" f:\
  5. pause
复制代码

作者: 回家路上    时间: 2015-9-1 20:31

本帖最后由 回家路上 于 2015-9-1 20:52 编辑
  1. @echo off
  2. set /a "y=%date:~0,4%,m=1%date:~5,2%-102,b=!(m+(1+2*(m>>31))*m),y-=b,m+=b*12+100"
  3. xcopy /y /e "e:\外勤\%y%\%m:~-2%\" f:\
  4. pause
复制代码

作者: CrLf    时间: 2015-9-1 20:35

继续化简:
  1. @echo off
  2. set /a "m=1%date:~5,2%-102,t=!m|!~m,m+=100+t*12,y=%date:~,4%-t"
  3. xcopy /y "e:\外勤\%y%\%m:~-2%\" f:\
  4. pause
复制代码

作者: 7016427    时间: 2015-9-1 21:42     标题: [未解决] 在线请教高手,win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

回复 4# CrLf
2、3、4楼老师,你们好!测试提示无效路径。但是我的路径是正确的。文件夹是按日期命名的,2015下的07
作者: terse    时间: 2015-9-1 21:56

  1. set /a "m=(1%date:~5,2%+5)%%12+101,y=%date:~,4%-m/111"
  2. echo;%y% %m:~-2%
复制代码

作者: 7016427    时间: 2015-9-1 22:13

回复 6# terse
你好!我现在再xp测试,结果2015  07
我明天拿到w7系统测试看正确不 ?
作者: 7016427    时间: 2015-9-2 21:11     标题: [始终未解决] 在线请教高手,win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

本帖最后由 7016427 于 2015-9-2 21:17 编辑

回复 1# 7016427
各位老师好!以下代码始终执行时,提示:找不到文件 — *.* ,复制了0个文件。 2015年07月份,执行完毕!
@echo off
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
xcopy /y "e:\外勤\%y%\%m:~-2%\*.*" d:\
echo %y%年%m:~-2%月份%,执行完毕!
pause
平时创建目录是执行的如下批处理文件,是否错误与此有关?
@echo off
set /p d="创建日期目录: (注意日期格式:2015-05-01)"
md e:\外勤\%d%
pause
作者: pcl_test    时间: 2015-9-2 21:48

勿重复发帖
http://www.bathome.net/thread-37158-1-1.html
贴出你的“e:\外勤”文件夹下的截图
你的创建文件的格式与你顶楼“e:\外勤\2015\07\”并不一致
set /p d="创建日期目录: (注意日期格式:2015-05-01)"
md e:\外勤\%d%
作者: 7016427    时间: 2015-9-2 22:04     标题: 【补充】 在线请教高手,win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

回复 9# pcl_test
你好!在w7系统上,那个创建目录代码,如2015年07月05日创建的目录显示为e盘“外勤”下显示:2015、07、05,三个文件夹!
作者: pcl_test    时间: 2015-9-2 22:14

回复 10# 7016427

set /p d="创建日期目录: (注意日期格式:2015-05-01)"
md e:\外勤\%d%
如按提示格式2015-05-01输入,表示生成的是e:\外勤\2015-05-01,那么你的“e:\外勤”的文件夹结构是怎样的?截图看看,图片过大可发网盘分享链接
或者使用如下命令,把生成的txt文件用附件或网盘分享链接发出来
tree e:\外勤 /f >out.txt
作者: 7016427    时间: 2015-9-2 22:29

回复 11# pcl_test
在w7系统上显示如图
作者: pcl_test    时间: 2015-9-2 22:37

回复 12# 7016427


xcopy /y /e "e:\外勤\%y%\%m:~-2%" d:\
作者: 7016427    时间: 2015-9-2 22:47

回复 13# pcl_test
请问老师这里,参数“y”和“e”分别起什么作用?
作者: pcl_test    时间: 2015-9-2 22:52

回复 14# 7016427

xcopy /?
  /S           复制目录和子目录,不包括空目录。
  /E           复制目录和子目录,包括空目录。
  /Y           取消提示以确认要覆盖现有目标文件。
  /-Y          要提示以确认要覆盖现有目标文件。
作者: 7016427    时间: 2015-9-2 23:11     标题: 【谢谢】 win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

回复 15# pcl_test

谢谢老师指点!我明天在单位w7上测试,刚才那个文件夹截图我是在家xp系统上按照w7情况截图的。
作者: 7016427    时间: 2015-9-3 16:23     标题: [未得到解决]win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

[未得到解决]回复 13# pcl_test

xcopy /y /e "e:\外勤\%y%\%m:~-2%\*.*" d:\
今天我在win7系统上执行时,仍然错误提示:系统找不到指定文件。最后显示已了38个文件。请问老师怎么解决!
作者: pcl_test    时间: 2015-9-3 17:29

本帖最后由 pcl_test 于 2015-9-3 17:33 编辑

回复 17# 7016427


    回看11、13楼
作者: 7016427    时间: 2015-9-3 22:01

回复 18# pcl_test
你好!我的文件夹结构就是13楼那样的!
作者: pcl_test    时间: 2015-9-3 22:11

回复 19# 7016427
图都没有,说又说不清,别再问我了

xcopy /y /e "e:\外勤\%y%\%m:~-2%" d:\ 2>nul
作者: 7016427    时间: 2015-9-3 22:20     标题: [请教老师]win7系统bat复制前两月文件夹下的所有文件,代码怎么写?

[请教老师]回复 20# pcl_test

xcopy /y /e "e:\外勤\%y%\%m:~-2%" d:\ 2>nul
你好!红色处是什么意思?
作者: 7016427    时间: 2015-9-3 22:51

回复 21# 7016427

@echo off
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
del d:\备份\*.* /q
xcopy /e /y "e:\外勤\%y%\%m:~-2%\*.*" d:\备份\
del "e:\外勤\%y%\%m:~-2%\*.*" /q
rd "e:\外勤\%y%\%m:~-2%
echo %y%年%m:~-2%月份%,执行完毕!
pause
实际就是以上红色3句未执行成功!请问各位老师,怎么修改?




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