JavaScript:多数のファイル名を変更する
多数のファイル名を変更するプログラム(delete-A.jse)を作りました。
書籍で紹介されているプログラムを、改造しました(簡単なプログラミング)。
プログラミング言語は、JaveScript です。
本記事で、delete-A.jse の機能紹介と使用方法、作り方を説明します。
delete-A.jse の機能紹介
機能
- ファイル名から、文字列「-A」を削除する
- ファイル名から、任意の文字列を削除する場合、delete-A.jse を改造(プログラミング)する
枝番削除
delete-A.jse の典型的な使用例として、枝番の削除があります。
- 枝番削除前:1005_21-A.mp4
- 枝番削除後:1005_21.mp4
上記例で、「-A」が、枝番です。
数百あるファイルの枝番を、手作業で削除するのは、大変な作業です。
delete-A.jse を使うことで、一気に正確に、枝番を削除できます。
delete-A.jse の使用方法
使用上の注意
多数のファイル名を一気に変更するので、何らかの理由で失敗することがあります。
そのため、必ず、元ファイルをコピーしたコピーファイルに対して、delete-A.jse を動作させて下さい。
簡単なプログラミング
プログラム(delete-A.jse)で、削除したい文字列を指定する部分を、エディタで書き換えます。
具体的には、以下の部分を書き換えます。詳細は、delete-A.jse の作り方で解説。
var new_f_Name = f_Name.split("-A").join("");
例えば、ファイル名から、文字列「abc」を削除したい場合、以下のように書き換えます。
var new_f_Name = f_Name.split("abc").join("");
エディタ
Visual Studio Code や Notepad++ などのプログラミングに対応したエディタが使える場合、そのままdelete-A.jse を書き換えできます。
そのようなエディタがない場合、テキストエディタを用いて、以下の手順でプログラミングします。
- delete-A.jse を右クリックし、プルダウンメニューから、「名前の変更」を選択する
- delete-A.jse の拡張子(jse)部分を、txt に書き換える。アラートが出るので、「はい」を選択する
- delete-A.txt を、テキストエディタで開き、上記部分を書き換え(”-A” → “abc”)、上書き保存する
- delete-A.txt を右クリックし、プルダウンメニューから、「名前の変更」を選択する
- delete-A.txt の拡張子(txt)部分を、jse に書き換える。アラートが出るので、「はい」を選択する
実行
delete-A.jse がプログラミングできたので、複数ファイルを選択し、deleteA.jse にドラッグ&ドロップします。
詳しく書くと、以下となります。
- ファイル名を変えたい複数のファイルを、マウスで選択する(Shift キー使います)
- そのまま、delete-A.jse にドラッグして手を放す(ドラッグ&ドロップ)
delete-A.jse 実行後、選択したファイルは、ファイル名が変更されています。
delete-A.jse の作り方
Visual Studio Code や Notepad++ などのプログラミングに対応したエディタが使える場合、以下の13行をコピーペーストし、ファイル名(delete-A.jse)で保存してください。
プログラミング対応のエディタが手元になく、テキストエディタが使える場合、以下の手順で、delete-A.jse を作ります。
- テキストエディタを起動する
- 以下の13行をコピーペーストする
- 「ファイル」-「名前を付けて保存」を選び、名前を「delete-A.txt」で保存する
- delete-A.txt を右クリックし、プルダウンメニューから、「名前の変更」を選択する
- delete-A.txt の拡張子(txt)部分を、jse に書き換える。アラートが出るので、「はい」を選択する
var args = WScript.Arguments; for (var i=0; i<args.length; i++) { renameFile(args(i)); } function renameFile(fname) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.getFile(fname); var f_Name = f.Name; var new_f_Name = f_Name.split("-A").join(""); var newname = f.ParentFolder + "\\" + new_f_Name; f.Move(newname); }
delete-A.jse の改造
基本的に、プログラムの13行は、おまじないと考えて、10行目の “-A” の所だけ書き換えれば使えます。
- 10行目だけ書き換えて使用する(簡単なプログラミング)
delete-A.jse の説明
delete-A.jse を使用するのに、中身を理解する必要はありません。
- 中身を理解する必要はない
ただ、それでも、中身が気になる方のために簡単に説明すると、
- 1行目~4行目:ファイル名を変えたいファイルの数だけループし、各々のファイルに対し、renameFile 処理しています
- split(“-A”)メソッドにより、ファイル名を文字列(”-A”)で分割した結果が、配列として保存されます
- join(“”)メソッドにより、その配列を連結します
詳細を知りたい方は、参考文献をご参照ください。
参考
- 仕事がはかどるJavaScriptファイル管理術
- JavaScript逆引きハンドブック