ファイル名リネーム



 ◇-?ファイル名リネーム-smappy-10/27-11:45(202)-No.463411
   ┗?!Re:ファイル名リネーム...-pandora-10/27-12:45(201)-No.463414
     ┗?!!Re:ファイル名リネーム...-smappy-10/27-12:50(201)-No.463416
       ┗?!!!Re:ファイル名リネーム...-pandora-10/27-13:11(200)-No.463417
         ┗?!!!!Re:ファイル名リネーム...-smappy-10/27-13:14(200)-No.463418

▲このページのトップに戻る
463411ファイル名リネームsmappy 2008/10/27-11:45

メーカー名:東芝
OS名:WindowsXp HomeEdition
パソコン名:CX
--
ファイル名のリネームについてなのですが、

ファイル数が膨大で、手動でやるのは大変なため、コマンドやツールなどがあれば教えていただきたいです。


元ファイル名
*****010507.MP3
*****010607.MP3
 ↓
リネーム後
○○○○070501.mp3
○○○○070601.mp3

ファイル名の日付が
日、月、年 になっているのを
年、月、日 に直したいです。

▲このページのトップに戻る
463414Re:ファイル名リネームpandora 2008/10/27-12:45

記事番号463411へのコメント
smappyさんは No.463411「ファイル名リネーム」で書きました。

面白そうなので、こんな DOSバッチを作ってみました

以下の、この下から・・・この上まで をコピーして、renmp3.cmd とかいうファイル名で保存してください
このcmdファイルを、MP3がたくさん入ってるフォルダにコピーして、
そこで、エクスプローラ上からダブルクリックしてください

ご希望の日付変更ができます

ただし、実行条件として
 ・rename対象は、ファイル拡張子がMP3
 ・ファイル名は、*****010507.MP3 の形式になってること(限定条件)


「SET TARGETDIR=」の部分を、その上の行のように修正すると、フォルダを指定してrename実行させられます

(修正後の例)
SET TARGETDIR=D:\MUSIC_FOLDER


今は、本当にrename実行させないように、コメント化してますので、ためし実行してみてください
本当に実行させたい場合、次の修正をしてください

:: rename実行
rem REN !ORGNAME! !RENNAME!
~~~

ここの rem の3文字を削除して、こう↓する

:: rename実行
REN !ORGNAME! !RENNAME!

私のパソコン上で動作確認デバッグはしてますが、
念のため、ファイル類のバックアップをしてからに願います




::----- この下からコピー -----
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
CLS

::RENAMEしたいフォルダ名をFULLPATHで(こんな具合に)
:: TARGETDIR=D:\MUSIC_FOLDER
SET TARGETDIR=

CD /D "%TARGETDIR%"
DIR /B %TARGETDIR% >FILEDIR.tmp
FOR /F %%P IN (FILEDIR.tmp) DO (
SET ORGNAME=%%P
SET RENNAME=!ORGNAME:~0,-10!!ORGNAME:~-6,2!!ORGNAME:~-8,2!!ORGNAME:~-10,2!!ORGNAME:~-4!

IF /I "!ORGNAME:~-4!"==".MP3" (
echo FILE Rename: !ORGNAME! → !RENNAME!
:: rename実行
rem REN !ORGNAME! !RENNAME!
) ELSE (
echo Not Rename: !ORGNAME!
)
)
DEL FILEDIR.tmp /Q

pause
::----- この上までコピー -----

▲このページのトップに戻る
463416Re:ファイル名リネームsmappy 2008/10/27-12:50

記事番号463414へのコメント
わざわざ作成していただきありがとうございます!

何点か質問なのですが

 ・ファイル名は、*****010507.MP3 の形式になってること(限定条件)

***** のところは、文字数は実際は6文字だったり3文字だったりなのですが、
そのあたりの対応はどのような感じでしょうか?


あと、
*****010507a.MP3
*****010507b.MP3
*****010507c.MP3

 ↓

*****070501a.MP3
*****070501b.MP3
*****070501c.MP3

のようなリネームを行いたいとき、このプログラムを改変することで行えますでしょうか?

▲このページのトップに戻る
463417Re:ファイル名リネームpandora 2008/10/27-13:11

記事番号463416へのコメント
smappyさんは No.463416「Re:ファイル名リネーム」で書きました。

すばやいですね
もう書き込みに気づかれましたか。。。


>***** のところは、文字数は実際は6文字だったり3文字だったりなのですが、
>そのあたりの対応はどのような感じでしょうか?

このバッチでは、ファイル拡張子の直前の 6文字(ddmmyy)を、yymmdd に入れ替えます
したがって、その前がどうであろうと関係ありません


>あと、
>*****010507a.MP3
>*****010507b.MP3
>*****010507c.MP3
>
> ↓
>
>*****070501a.MP3
>*****070501b.MP3
>*****070501c.MP3
>
>のようなリネームを行いたいとき、このプログラムを改変することで行えますでしょうか?

できます

ただし、以下の二つの形式のファイルの同居(同じフォルダに入れる)はダメです
プログラムからは、どっちがどのタイプなのか判断できない

*****010507.MP3
*****010607.MP3

*****010507a.MP3
*****010507b.MP3



修正対象は、この行です

SET RENNAME=!ORGNAME:~0,-10!!ORGNAME:~-6,2!!ORGNAME:~-8,2!!ORGNAME:~-10,2!!ORGNAME:~-4!

説明すると、

!ORGNAME:~0,-10!  → ファイル名の、後ろから 11文字目までを取り出す (****の部分)

!ORGNAME:~-6,2!  → ファイル名の、後ろから 6文字目から 2文字取り出す (年の部分)

!ORGNAME:~-8,2!  → ファイル名の、後ろから 8文字目から 2文字取り出す (月の部分)

!ORGNAME:~-10,2!  → ファイル名の、後ろから 10文字目から 2文字取り出す (日の部分)

!ORGNAME:~-4!   → ファイル名の最後の 4文字を取り出す (ファイル拡張子の部分 .mp3)

取り出す位置は、数字で指定してるので、それを変更すれば自由に設定できます

▲このページのトップに戻る
463418Re:ファイル名リネームsmappy 2008/10/27-13:14

記事番号463417へのコメント
早速ありがとうございます!

私が欲しかったものどんぴしゃのようです♪

後ほど試してみたいと思います!
また報告させていただきます♪

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言