- ベストアンサー
ファイル名をフォルダ名と同期したい
下記のようなフォルダ構成で1つのフォルダに1つのindex.htmlが入っています。 Aフォルダ―1フォルダ―index.html 2フォルダ―index.html 3フォルダ―index.html 4フォルダ―index.html ・ ・ ・ (以降、500フォルダあります) このそれぞれのindex.htmlを、フォルダ名についている数字.htmlに変更したいのですが何かいい案はないでしょうか? たとえば1フォルダに入っているindex.htmlは1.htmlに変更したいのです。 そして出来ればですが新規の別のフォルダに移動して一覧で表示できるようにしたいのですがそういうことは出来ますか?別のフォルダに移動しなくても1.html~500.htmlが一覧で見れればそれでいいのですが、今はいちいちフォルダを開いてまたファイルをクリックしないといけないので、更新時間順での並び替えが出来ず不便です。 500個もあるので手で修正するのに疲れてきました。 ソフトウェアは連番とかしか出来ないものが多いようで困っています。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この手の単純作業は本来コンピュータにさせるべきですね。 私ならPerl等のスクリプトを使って自動処理させますが、Perlを知らない人にいきなりプログラムを作らせるのは無理がありますね。 とりあえずバッチファイルで処理するのはどうでしょう? ren 1\index.html 1\1.html ren 2\index.html 2\2.html : ren 500\index.html 500\500.html というテキストファイルを作成してファイル名をa.batとかにします。 これをAフォルダの下に置いて実行すれば一括してファイル名の変更ができます。 最初のテキストファイルを作るのが大変かもしれませんが、 1~10までの10行分を作成したらそれをコピーして文字を2~20にします。 同様に1~100までの100行分ができたらコピーして101~200にすることで少しは作業量を減らすことができると思います。 参考になれば幸いです。
その他の回答 (1)
- wildcat-yp
- ベストアンサー率37% (303/813)
ある程度法則が決まっているようですので、私であれば、Excelでバッチファイルを作って変更してしまいます。 たとえば、 A列に 連番の数字 を入れ、 B列に =CONCATENATE("copy ",A1,"フォルダ\index.html ",A1,"フォルダ\",A1,".html") などとして上げて、B列だけコピーして、コマンドプロンプトなどでAフォルダに移動してからコピーしたB列を張り付けると、張り付けた行数分のコマンドが実行されて数秒で変換されます。 念のため、Aフォルダはコマンド実行前にどこかにコピーしておいてくださいね。失敗しても元に戻せるように。 結構、私は、数十回似たようなコマンドを実行しないといけない時にはExcelやテキストエディタの置換機能を使ってコマンドを作成して実行します。 慣れると応用範囲は広いと思います。
補足
ご回答ありがとうございます。 B列に =CONCATENATE("copy ",A1,"フォルダ\index.html ",A1,"フォルダ\",A1,".html") を入れて下にコピーさせたのですが、 copy renフォルダ\index.html renフォルダ\ren.html という風になってしまいます。 何かやり方が悪いのでしょうか?
補足
ご回答ありがとうございます。 バッチと言うものを作ってみたのですが、変わりません。 黒い画面がバーっとでてその中にどうやら 「コマンドの設定が間違っています」という文字が見えます。 一瞬で消えるので正確にはわからないのですが・・・ バッチの中は ren 00001 \index.html 00001 \1.html ren 00002 \index.html 00002 \2.html ren 00003 \index.html 00003 \3.html ren 00004 \index.html 00004 \4.html ren 00005 \index.html 00005 \5.html ren 00006 \index.html 00006 \6.html ren 00007 \index.html 00007 \7.html ren 00008 \index.html 00008 \8.html ren 00009 \index.html 00009 \9.html ren 00010 \index.html 00010 \10.html (以後100まで) としたのですが何か間違っているのでしょうか? バッチ名はa.batにしています。