こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイル名変換について

南條愛乃・エオルゼアより愛をこめて 第244回 2019年07月05日 放送.mp3
と言うファイル名を
南條愛乃・エオルゼアより愛をこめて_第244回 2019年07月05日 放送.mp3
にしたいです。
他にもファイルがありますので
頭は「南條愛乃・エオルゼアより愛をこめて」指定、その後に_を入れるだけです。

投稿日時 - 2019-07-07 03:59:58

QNo.9632768

すぐに回答ほしいです

質問者が選んだベストアンサー

batファイルならこんなコードと思います。
(若干手抜きです。使うなら事前にテストしてください。)

echo off
for %%F in (南條愛乃・エオルゼアより愛をこめて*.mp3) do call :sub "%%F"
goto :EOF

:sub
Set Bstr1=%1
set Bstr2=%Bstr1:~1,17%
set Bstr4=%Bstr1:~19,256%
set Bstr5=%Bstr2%_%Bstr4%
rename %Bstr1% "%Bstr5%
goto :EOF

投稿日時 - 2019-07-07 15:06:25

お礼

ありがとうございました。
文字列分解がよくわからなかったのです。

投稿日時 - 2019-07-07 18:10:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

No4に追加です。

言い忘れてました。
batファイルは、
期待のファイル群を含むフォルダーと同じフォルダーに配置してください。

投稿日時 - 2019-07-07 15:10:24

ANo.3

VBSでよければ、次のようなスクリプトはいかがでしょうか。
Option Explicit

Dim objFileSys
Dim objFolder
Dim objFile
Const MyFol = "D:\test"
Const orgNameF = "南條愛乃・エオルゼアより愛をこめて "
Const orgNameT = "南條愛乃・エオルゼアより愛をこめて_"

Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSys.GetFolder(MyFol)

For Each objFile In objFolder.Files
'msgbox(objFile.Name)
if GetNewName(objFile.Name) <> "" then
objFile.name = GetNewName(objFile.Name)
end if
Next
Set objFolder = Nothing
Set objFileSys = Nothing

Function GetNewName(iname)
if Left(iname ,18) = orgNameF then
GetNewName = orgNameT & right(iname ,len(iname)-18)
end if
end function

投稿日時 - 2019-07-07 11:07:54

補足

できればバッチでお願いします。

投稿日時 - 2019-07-07 13:01:30

ANo.2

う~む、バグが拡散してる・・・カオスの始まりか。

投稿日時 - 2019-07-07 09:12:23

ANo.1

同様のファイルが多数あり、それらを一括変換されたいということでしょうか。以下の記事には、ファイル名変更を一括して行うフリーのソフトが多数紹介されています。
https://freesoft-100.com/pasokon/rename.html

お好みに合うものを探すには、ご自身で試してみると良いと思います。
以上、参考にならなかったらごめんなさい。

投稿日時 - 2019-07-07 04:48:22

あなたにオススメの質問