2013-03-28 79 views
1

我有图片的文件夹,我已按日期命名,用的03282013形式的日期,这意味着3月28日2013年重命名多个文件夹有不同的命名方案

了很多我用更多的开始显而易见,易于排序,命名方案2013-03-28,含义2013年3月28日。

是否有一种直接的方式,使用批处理文件,使用新格式重命名我所有的旧文件夹?

示例:重命名03282013至2013年3月28日等等

+0

使用PowerShell或一流的编程语言(其中字符串操作是更好)可能会为此更好地工作。这就是说:http://www.dostips.com/DtTipsStringManipulation.php –

+0

需要更多信息 - 目标目录是否有“mmddyyyy”作为它们的名字或仅仅是名称的一部分?如果它只是一个部分,命名模式是什么? – Magoo

回答

0

试试这个,取出最后echo(前ren),若输出OK:

@echo off &setlocal 
for /f "tokens=1,2" %%a in ('for /f "delims=" %%i in ^('dir /ad /b .^^^| findstr /b [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$'^) do^
@set "fname=%%i"^&^ 
@call set "month=%%fname:~0,2%%"^&^ 
@call set "day=%%fname:~2,2%%"^&^ 
@call set "year=%%fname:~-4%%"^&^ 
@call set "fname=%%year%%-%%month%%-%%day%%"^&^ 
@call echo "%%~i" "%%fname%%"') do echo ren "%%~a" "%%~b" 

此搜索文件夹在正确的MMDDYYYY格式中,所有其他文件夹保持不变。

0

下面的批处理文件重命名从MMDDYYYY格式在当前目录下的所有文件夹到YYYY-MM-DD格式:

@echo off 
setlocal EnableDelayedExpansion 
for /F %%a in ('dir /B /AD') do (
    set name=%%a 
    ren %%a !name:~4!-!name:~0,2!-!name:~2,2! 
) 

安东尼