2013 年 3 月 28 日を意味する 03282013 の形式の日付で名前を付けた写真用のフォルダーがたくさんあります。
私は、2013 年 3 月 28 日を意味する 2013-03-28 という、より明白で分類しやすい命名方式を使い始めました。
バッチ ファイルを使用して、新しい形式を使用してすべての古いフォルダーの名前を変更する簡単な方法はありますか?
例: 03282013 を 2013-03-28 などに名前変更
2013 年 3 月 28 日を意味する 03282013 の形式の日付で名前を付けた写真用のフォルダーがたくさんあります。
私は、2013 年 3 月 28 日を意味する 2013-03-28 という、より明白で分類しやすい命名方式を使い始めました。
バッチ ファイルを使用して、新しい形式を使用してすべての古いフォルダーの名前を変更する簡単な方法はありますか?
例: 03282013 を 2013-03-28 などに名前変更
以下のバッチ ファイルは、現在のディレクトリ内のすべてのフォルダーの名前を 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!
)
アントニオ
これを試して、出力がOKの場合は最後echo
(の前)を削除してください:ren
@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 形式のフォルダーが検索されます。他のすべてのフォルダーは変更されません。