标题: [文件操作] 如何用批处理操作30分钟前创建的文件? [打印本页]
作者: ffin 时间: 2013-9-23 14:38 标题: 如何用批处理操作30分钟前创建的文件?
本帖最后由 foxJL 于 2013-9-24 16:13 编辑
单位操作系统会产生一些文件,
需要人工将30分钟前创建的报文剪切到特定的文件夹
如何用批处理实现操作,比如每3分钟将30分钟前创建的报文剪切过去。
尝试下面的代码,不行,提示找不到操作数- @echo off
- setlocal enabledelayedexpansion
- :rd
- for /f "tokens=1-2 delims=:" %%a in ('echo %time%') do set /a th=%%a & set /a tm=%%b & set /a nt=%th%*60+%tm%-30
- for /f "tokens=*" %%a in ('"dir /s /b e:\test"') do (
- set ft=%%~ta
- for /f "tokens=1-5 delims=^-,^:, " %%i in ("!ft!") do set /a th=%%l & set /a tm=%%m & set /a ot=!th!*60+!tm!
- if !ot! leq %nt% (move "%%a" "e:\test2")
- )
- ping 127.1 -n 180
- goto rd
- endlocal
复制代码
作者: ffin 时间: 2013-9-23 16:22
谁能帮忙分析一下以上代码问题在哪里
意图就是想把 e:\test 下的文件,如果创建时间距离现在超过30分钟的
挪到 e:\test2下去
作者: terse 时间: 2013-9-23 18:34
时间单位出现08时会出错
作者: xpw 时间: 2013-9-23 19:21
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,2 delims=:" %%a in ('echo.%time% /t') do set /a nowt=0x%%a*60+0x%%b
- for /f %%a in ('dir /b e:\test') do (
- set tm=%%~ta
- for /f "tokens=2,3 delims=: " %%b in ('echo.!tm!')do set /a tout=nowt-^(0x%%b*60+0x%%c^)
- if "!nowt!" leq 30 move %%~fa e:\test2
- )
复制代码
试着简单做了一个,没做测试,限制有点多
1、时间要24小时制
2、跨天无效
3、移动的源路径不能有空格
作者: ffin 时间: 2013-9-24 09:35
回复 4# xpw
试了一下 还是不行
回头再琢磨琢磨
粗看了一下
赋值似乎有些不对头
作者: apang 时间: 2013-9-24 14:29
本帖最后由 apang 于 2013-9-24 18:10 编辑
放到计划任务里,每3分钟执行一次。没考虑子目录情况。
小时前面少一个0,改一下- @echo off
- set "SrcDir=E:\test"
- set "DstDir=E:\test2"
-
- echo,D = DateAdd("n",-30,Now)>"%tmp%\$.vbs"
- echo,WScript.Echo Year(D)*10000+Month(D)*100+Day(D)^&_>>"%tmp%\$.vbs"
- echo,Right("0"^&(Hour(D)*10000+Minute(D)*100+Second(D)),6)>>"%tmp%\$.vbs"
-
- for /f "delims=" %%a in ('cscript /NoLogo "%tmp%\$.vbs"') do set "t=%%a"
- for %%a in ("%SrcDir%\") do set "Drv=%%~da" & set "Pth=%%~pa"
- set w=wmic datafile where "Drive='%Drv%' and Path='%Pth:\=\\%'"
-
- for /f "tokens=1*" %%a in ('%w% get CreationDate^,Name^|find ":"') do (
- if "%%~na" lss "%t%" (
- for /f "tokens=*" %%c in ("%%b") do move "%%~fc" "%DstDir%\"
- )
- )
- del "%tmp%\$.vbs"
复制代码
作者: ffin 时间: 2013-9-25 10:58
回复 6# apang
不懂VBS 看的如天书
作者: ffin 时间: 2013-9-29 10:44
还是不行。。。。
作者: DAIC 时间: 2013-9-29 13:07
回复 8# ffin
你测试的哪个代码?具体哪里不行?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |