2013-03-28 7 views
1

У меня есть много папок для фотографий, которые я назвал по дате, с датой в виде 03282013, означающих 28 марта 2013 г.Переименование нескольких папок с другой схемой именования

Я начал использовать более очевидно, и легко сортировать, схему именования 2013-03-28, что означает 28 марта 2013 года.

Есть ли прямой способ, используя командный файл, переименовать все мои старые папки в новом формате?

Пример: Переименование 03282013 в 2013-03-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

Файл Batch переименовывает все папки в текущей директории из формата ММДДГГГГА в формат 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! 
) 

Антонио

Смежные вопросы