Board logo

标题: [文本处理] 批处理 求能实现copy一个月以前的文件的机能的.bat [打印本页]

作者: zk2587    时间: 2008-11-6 10:06     标题: 批处理 求能实现copy一个月以前的文件的机能的.bat

要实现一个拷贝功能的批处理,是通过现在的系统时间来判断,例如:在c:/aa文件夹中,如果据现在来说是一个月以前的文件就将它拷贝到d:/aa文件夹下。拜托拉
以下是我做的,抛砖引玉
  1. @echo off
  2. echo 正在从下面复制文件,清稍候……
  3. if %DATE:~9,2%=="1"goto Change
  4. set aFile=%DATE:~4,4%-%DATE:~9,2%-1-%DATE:~12,2%
  5. :Change
  6. set aFile=%DATE:~4,4%-1-%DATE:~9,2%+11-%DATE:~12,2%
  7. echo %aFile%
  8. xcopy /e /c /f /h /k /y /d:aFile "C:\Documents and Settings\feng_xu\デスクトップ" "D:\z\"
  9. echo 复制完成
  10. cls
  11. echo 全部命令成功的完成了!
复制代码

关键是日期问题,如果是一月的话那就需要换上一年了,。。切记,切记
我那个是日文操作系统阿,不识别你写的“字节“汉字阿。哪位能发个英文通用的阿
以下是百度找的,不但不好用,我还看不懂、
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. Rem 取30天之前的日期,取回放入变量riqi
  4. echo wscript.echo dateadd("d",-30,date) >%tmp%\tmp.vbs
  5. for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i&set m=%%j&set d=%%k
  6. if %m% LSS 10 set m=0%m%
  7. if %d% LSS 10 set d=0%d%
  8. set riqi=%y%%m%%d%
  9. set "mulu=g:\a\kg"
  10. for /f "eol= skip=4 tokens=1,4" %%a in ('dir /a-d /tw "%mulu%"^|find /v ^"字节^"') do (
  11. set delrq=%%a
  12. set delrq=!delrq:-=!
  13. if !delrq! lss %riqi% (
  14. copy "%mulu%\%%~nxb" "e:\temp\"
  15. )
  16. )
  17. pause
  18. 里面的文件路径自己改改就成了.呵呵..花了点时间帮你写了个.恩
复制代码

作者: youxi01    时间: 2008-11-6 10:58

论坛搜索 随风 的删除N天文件....
作者: zk2587    时间: 2008-11-6 11:30     标题: 555

我看不明白,555那么多功能,我只要我说的就行,555,谁来帮帮我!
作者: Batcher    时间: 2008-11-6 18:20

开始
运行
cmd
echo %date%
结果贴出来看看
作者: zk2587    时间: 2008-11-10 13:12     标题: 显示的结果是

2008/11/10
作者: zk2587    时间: 2008-11-10 13:47     标题: 这么写对么

@echo off
setlocal enabledelayedexpansion
Rem 取40天之前的日期,取回放入变量riqi
echo wscript.echo dateadd("d",-4,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i&set m=%%j&set d=%%k
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set riqi=%y%%m%%d%

set "mulu=g:\a\kg"
for /f "eol= skip=4 tokens=1,4" %%a in ('dir /a-d /tw "%mulu%"') do (
set delrq=%%a
set delrq=!delrq:-=!
if "!delrq:~0,3!"=="200" (
if !delrq! lss %riqi% (
copy "%mulu%\%%~nxb" "e:\temp\"
)
)
)
pause
作者: Batcher    时间: 2008-11-10 16:41     标题: 回复 6楼 的帖子

你自己的测试结果如何呢?
作者: zk2587    时间: 2008-11-13 13:37     标题: 这是别人给我的

@echo off
setlocal enabledelayedexpansion
Rem riqi
echo wscript.echo dateadd("d",-4,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i&set m=%%j&set d=%%k
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set riqi=%y%%m%%d%

set "mulu=d:\"
for /f "eol= skip=4 tokens=1,4" %%a in ('dir /a-d /tw "%mulu%"') do (
set delrq=%%a
set delrq=!delrq:/=!
if "!delrq:~0,3!"=="200" (
if !delrq! lss %riqi% (
copy "%mulu%\%%~nxb" "e:\"
)
)
)
pause

这是别人给我的,在我机器上不好用,但是他说他试验过了,是不是我系统问题呢?求解
作者: Batcher    时间: 2008-11-13 14:12     标题: 回复 8楼 的帖子

"不好用"的具体表现是?




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