批处理 按文件创建时间的月份分类

有大概20000多张图片,从09年到现在,全部都在一个文件夹里面,没有子文件夹我想按照图片创建的月份分类创建文件夹最好把3个月内的图片创建一个文件夹,不然有几十个文件夹,... 有大概20000多张图片,从09年到现在,全部都在一个文件夹里面,没有子文件夹我想按照图片创建的月份分类创建文件夹最好把3个月内的图片创建一个文件夹, 不然有几十个文件夹,太多比如1-3月的放一起,文件夹取创建时间命名 只取年月 ,1-3月的文件夹名字取3月的,也就是最近的月份命名 展开
 我来答
匿名用户
2013-07-30
展开全部
请注意创建时与修改时间的区别,本程序是按文件的创建时间来处理。
把正文保存为BAT文件,放到该文件夹内,运行它即可:
@echo off
@setlocal enabledelayedexpansion
@set SEP=%DATE:~4,1%
@for /l %%i in (2009,1,2012) do (
set YEAR=%%i
rem echo Current Year IS: !YEAR!

for /l %%m in (3,3,12) do (
if %%m LSS 10 ( set "MONTH=0%%m" ) else ( set "MONTH=%%m" )
set FOLDER=!YEAR!!MONTH!
set "CURRENT_DATE=!YEAR!!SEP!!MONTH!!SEP!31 23:59"
rem echo Moving Files Created Before !CURRENT_DATE! to !FOLDER!...

for /f "tokens=*" %%p in ('dir /b /a-d /od /tc') do (
rem echo GOT file [%%p]...
if /i NOT "%%~nxp"=="%~nx0" (
if "%%~tp" LEQ "!CURRENT_DATE!" (
echo Moving file [%%p %%~ti] TO Folder [!FOLDER!]

if NOT EXIST !FOLDER! (mkdir !FOLDER!)
if not exist "!FOLDER!\%%p" (move /y "%%p" !FOLDER!)
if errorlevel 1 ( echo ERROR %errorlevel% when moving file [%%p])
)
)

)

)
)

:END
@endlocal
@echo JOB DONE SUCCESSFULLY! &pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式