[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何复制指定时间内建立的文本文件

是这样子的:我的文本文件在Ciamond\test\log\95P4230里面,我平时都是copy全部的文本文件出来到D:Diamond\test\log\95P4230\做备份。即:copy C:Diamond\test\log\95P4230\*.txt D:Diamond\test\log\95P4230\也就是我copy了所有的文件。
现在我指定,只要6月,或7月份建立的的文件。即从1号到31号,我电脑显示时间的格式是2009-07-22。
谢谢大家这么关心我的问题,要是表达得不够清楚,请指正啊,我一直都在线。[

[ 本帖最后由 msconfig 于 2009-7-22 15:38 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

回复 10楼 的帖子

完全可行,实在是太感谢你了,我一定会努力学习的

TOP

回复 9楼 的帖子

看你的提示,你是把我给你的代码保存后,你放到桌面上,进行运行了。

两种解决方案:
1、把我4楼的代码保存后放到C:\Diamond\test\log\95P4230\目录下,进行双击。补充一点,我4楼的代码没有考虑文件名中含有空格。
2、给我的4楼的代码加上一句,不管你把代码放到哪儿都行。给4楼代码加上一句后,代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. cd /d C:\Diamond\test\log\95P4230
  3. for /f "delims=" %%i in ('dir /od /b C:\Diamond\test\log\95P4230\*.txt ') do (
  4.      set d=%%~ti
  5.      set d=!d:-=!
  6.      if !d! geq 20090701 if !d! leq 20090730 xcopy "%%i" D:\Diamond\test\log\95P4230\
  7. )
  8. pause
复制代码

[ 本帖最后由 keen 于 2009-7-22 14:40 编辑 ]
(*^_^*)

TOP

回复 8楼 的帖子

运行后,这是我删掉@后的提示:
C:\Documents and Settings\program\Desktop>echo off  & setlocal enabledelayedexpa
nsion
Press any key to continue . . . .我再去看:\Diamond\test\log\95P4230\里面是空的,时间格式我也改过了,原来是20090701我改成2009-07-01,还是提示上面的请按任意键继续。

TOP

回复 楼主

我4楼的代码你运行出现什么错误现象?没执行成功的表现是什么,请描述一下?
(*^_^*)

TOP

回复 5楼 的帖子

1、请把所有的背景信息全部更新到顶楼,以便他人查看。

2、涉及到日期时间的问题,最后能把本机的系统日期格式发出来看看:
开始
运行
cmd
echo %date% %time%
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

你首先要搞清楚,我的代码是复制txt文本文档.

再有,如果你的实验也是TXT文本的话,请把错误信息贴上来.
(*^_^*)

TOP

首先谢谢你的帮忙。我刚才试过了,不成功。我想表达得更清楚一些:因为我是做testing 的support的,每test一次,就会有一个log file自动保存在C:\Diamond\test\log\95P4230\下面,每一个log file的名字都是以电子板上面的序列号命名的,这个log file 里面记录了testing过程中的每一个参数,所以要备份给客户。客户是每个月都要一次这些log file的。以前我每一次做的时候 都是手动去C:\Diamond\test\log\95P4230\里面点按时间(Date Modified)先后排列,再选1号到30号的文件copy的。

TOP

回复 1楼 的帖子

拷贝的文件是2009.7.1~2009.7.30:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /od /b C:\Diamond\test\log\95P4230\*.txt ') do (
  3.      set d=%%~ti
  4.      set d=!d:-=!
  5.      if !d! geq 20090701 if !d! leq 20090730 xcopy %%i D:\Diamond\test\log\95P4230\
  6. )
  7. pause
复制代码
(*^_^*)

TOP

回复 2楼 的帖子

*.*是所有格式都行吧,要不就用txt格式。我写简单点:copy Ciamond\test\log\95P4230\*.txt D:Diamond\test\log\95P4230\
我是要copy  C:Diamond\test\log\95P4230下面从7月1号到7月30号生成的txt格式的所有文件。到D:Diamond\test\log\95P4230\这个地方。因为7月1号之前的也有很多文件在95P4230这个文件夹下,我要按时间来copy.

TOP

没太明白你的意思,最好详细说清楚,比如什么文件夹,怎么个显示格式之类的
Still with wax

TOP

返回列表