中小企業の働き方改革をサポート>>

業務上、大量のファイルのファイル名を変更する必要があり、ファイル名を一括変更するツールを探しています。
やりたいことは、ファイル名の特定位置の文字列を一括で変更することなのですが、変更後の文字はファイルによって異なるため、何らかの方法でそれを指定できるツールが必要と思っています。

想定しているのは、例えば以下のような機能です。

・ファイル名の一部を格納フォルダ名に一括変更する。
例:「XXXX-AAAA-0001.pdf」等がフォルダ名BBBBに格納されていた場合、
  BBBB配下のファイルを全て「XXXX-BBBB-0001.pdf」のように変換する。

または、

・外部ファイル(またはそのツール)に変更前ファイル名と変更後ファイル名を指定して、読み込むことでファイル名を一括変更する。(変更パターンは複数あり)

使用端末はWindowsXPまたはWindows7です。
Excelのマクロ等でも出来そうだと思いますので、実装例等をご紹介いただくことでも問題ありません。

よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

> やはりマクロが有用なのでしょうか。



別にマクロでもバッチでも専用アプリでも、何でもいいです。
要は、質問者さんが今回の要件と自分のスキルとを照らし合わせて、もっとも手軽に出来る方法は何か、ということを考えてください。 Excelが得意ならExcelでかまわないと思いますし。

ファイル名の変更、というのは今後何回も発生する定型作業のようですから、作業後との手間は減らしつつ、かつそのツールの作成に必要な労力を最小限に抑えるにはどうすればよいか、というのは質問者さんが考えないといけません。
(人から聞いた内容をそのまま転載しただけだと、何かあったときの対応が取れなくなります)

その上で判らないことがあって質問されるのであれば、助けてくれる人は多分いると思います。
    • good
    • 0

コマンドラインでやる、って選択肢もありますね



最初のやつだと、以下のコマンドで多分いけるんじゃないかと。
# 試してないので、実際にやる際は事前に試験してください

c:\> cd /d bbbb     ← bbbbのフルパスを使うことを推奨します。
bbbb> ren *-aaaa-*.pdf *-bbbb-*.pdf

2番目のやつは、ExcelのA列に変更前のファイル名、B列に変更後のファイル名を
入れてcsv形式で保存(たとえば hoge.csv)。
その上で、以下のコマンドを実行

for /F "delims=, tokens=1,2" %i in (hoge.csv) do ren %i %j

ちょいと手間かもですが、作業が単発であればこっちの方が早いかも。
何回も繰り返し作業が発生するのであればExcelマクロなりなんなり、楽に実行できる環境を作った方がよいです。
    • good
    • 0
この回答へのお礼

おっしゃる通り、繰り返し作業が発生しますので、やはりマクロが有用なのでしょうか。
具体的な実装例を教えていただければ幸いです。

お礼日時:2011/11/24 19:54

質問者様の要求に完璧にそうものなのかどうかはわかりませんが、私は、ファイル名変更ツールとして、「ファイル名変更くん」を利用させてもらっています。

フリーソフトです。
もしも、この手の出来合いのソフト(要は変換仕様が決まっていて、利用者はその仕様の範囲で使用するソフト)で困難なことを求めておられるのでしたら、もちろんExcelマクロ等、ご自分でプログラムを組むしかないですね。
ちなみに、私は昔Excelマクロで、ファイル名を変更するものを作ったことがありますので、Excelマクロを組めるのであれば、Excelで作成するのが簡単かもしれません。

1)名称変換対象ファイルが格納されているフォルダを指定する。
   やりかたはいくつかあります。
   決め打ちで、Excelの特定のセルにフルパスの文字列を記入しマクロで、そのパスを読み込む。
   マクロの中で、フォルダ指定用のダイアログを表示して、ユーザ操作でフォルダ指定できるようにする。
2)マクロに指定フォルダのパスを与えることができたら、その中の対象ファイルを片っ端から検索して、
 ファイル名を変更していく。(万が一のプログラミングのバグを想定して、"ファイル名を変更して保存"を
 行えば、万が一の場合でも元のファイルは残っているので安心、元ファイルは意図通りに名称変更できたことを確認した
 のち手で削除、ということもできるし、プログラムも簡単かな?)
   キーワード:Excel/VBA「dir」
 変更前の名前から変更後の名前に変換するのは、文字列の加工を行うVBA関数(文字列関数)を駆使する。
  例)mid、left、right、trim、StrConv、replace等々

以上、ご参考までに。
なお、実装例の紹介をできればよいのですが、自分のやりたいことを適当にプログラムしたものであり、その内容を
説明するのは大変なので省略させていただきます。(目の前にいてその場で説明...ならできるのですが。)
    • good
    • 0
この回答へのお礼

マクロを組む時間がないので、具体的な実装例を教えていただければ幸いです。

お礼日時:2011/11/24 19:53

名前が競合しそうですね。


たぶんwshでやるのが妥当だと思いますが・・・
    • good
    • 0
この回答へのお礼

具体的な方法があれば教えていただけますでしょうか。

お礼日時:2011/11/24 19:52

ベクターにくと、フリーソフトでありますよ。

リネーマとか、「ファイル リネーム ソフト」等で
検索してみてください。
    • good
    • 0
この回答へのお礼

ベクターで検索してみましたが、希望に沿った機能を満たしたツールは見当たりませんでした。具体的なソフト名がおわかりでしたら、教えていただけますと助かります。

お礼日時:2011/11/22 15:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング