• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイル フォルダ名をファイル名に置き換える)

バッチファイルでフォルダ名をファイル名に置き換える方法

このQ&Aのポイント
  • バッチファイルを使用して、複数のフォルダに格納されているファイルの名前をフォルダ名にリネームする方法を教えてください。
  • 指定したフォルダ内のファイルを、それぞれのフォルダ名に基づいてリネームするバッチファイルの作成方法を教えてください。
  • バッチファイルを使って、特定のフォルダ内にあるファイルをフォルダ名に基づいてリネームする方法を教えてください。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ざっと書いてみました 例外処理やエラー処理など一切省いていますので 想定外のファイル名などついている場合は、動かないかも 「rename.vbs」という名前で存して、マウスでダブルクリックしてみてください 'ここから myFolder="C:\リネーム\" set fs=CreateObject("Scripting.FileSystemObject") set objFolder=fs.GetFolder(myFolder) Set objRE = CreateObject("VBScript.RegExp") For Each sf in objFolder.SubFolders set objSubFolder=fs.GetFolder(sf) For Each f in objSubFolder.Files fname=fs.GetFileName(f) bname=fs.GetBaseName(f) ext=fs.GetExtensionName(f) pname=fs.GetFileName(fs.GetParentFolderName(f)) objRE.pattern=".*?([\d]*?$)" newname=objRE.replace(bname,pname&"$1") &"."&ext msgbox myFolder&fname&" -> "& myFolder&newname f.Name=newname Next Next 'ここまで

natural_on2004
質問者

お礼

ありがとうございます! 無事動きました!!本当に感謝です><

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ファイル名をディレクトリ名にあわせるならディレクトリ分けする意味がないような・・・ いわゆるbatではなくwsh(vbs)であればもっとやりやすいと思います。 なお、 hoge1.txt fuga1.txt など存在すると競合しますが、絶対にでてこない保証があるという前提でいいのでしょうか?

natural_on2004
質問者

お礼

回答ありがとうございます。 そうなんです、ディレクトリ分けする意味ないんです。。 wshですね、勉強してみます>< 競合するとは、複数のディレクトリ内に同じファイル名が存在するとという意味でしょうか?

関連するQ&A