【发布时间】:2012-02-20 22:59:57
【问题描述】:
我正在处理一个批处理文件来读取文件夹中的文件,如果它们超过 4 天,请将它们移动到 archive\YYYY\MM 文件夹结构中。这是当前的代码
::根据文件年月移动错误文件夹中的文件以存档
@echo 关闭
设置“源=C:\用户\用户\桌面\测试”
设置“targetRoot=C:\Users\user\Desktop\test\archive”
对于 /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') 做@(
设置 mm=%%A
设置 dd=%%B
设置 yyyy=%%C
)
设置 currdate=%yyyy%%mm%%dd%
::echo %currdate%
设置 /a currdate-=7
::echo %currdate%
对于 ("%source%\*") 中的 %%F 执行 (
for /f "tokens=1,2,3 delims=/ " %%D in ("%%~tF") 做 (
SET 文件DT=%%F%%D%%E
如果 /I %currdate% GTR %fileDT% (
如果不存在 "%targetRoot%\%%F" mkdir "%targetRoot%\%%F"
如果不存在 "%targetRoot%\%%F\%%D" mkdir "%targetRoot%\%%F\%%D"
move "%%~fF" "%targetRoot%\%%F\%%D"
)
)
)
问题是我添加了之后
if /I %currdate% GTR %fileDT%行,它不再知道 %%~fF 是什么,因此也不知道要移动哪个文件。
我应该注意我是批处理文件的新手,我主要修改我在网上找到的代码。
【问题讨论】:
标签: batch-file