JavaScriptプログラム

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 を書き換えできます。

そのようなエディタがない場合、テキストエディタを用いて、以下の手順でプログラミングします。

  1. delete-A.jse を右クリックし、プルダウンメニューから、「名前の変更」を選択する
  2. delete-A.jse の拡張子(jse)部分を、txt に書き換える。アラートが出るので、「はい」を選択する
  3. delete-A.txt を、テキストエディタで開き、上記部分を書き換え(”-A” → “abc”)、上書き保存する
  4. delete-A.txt を右クリックし、プルダウンメニューから、「名前の変更」を選択する
  5. delete-A.txt の拡張子(txt)部分を、jse に書き換える。アラートが出るので、「はい」を選択する

 

実行

delete-A.jse がプログラミングできたので、複数ファイルを選択し、deleteA.jse にドラッグ&ドロップします。

詳しく書くと、以下となります。

  1. ファイル名を変えたい複数のファイルを、マウスで選択する(Shift キー使います)
  2. そのまま、delete-A.jse にドラッグして手を放す(ドラッグ&ドロップ)

delete-A.jse 実行後、選択したファイルは、ファイル名が変更されています。

 

 

 

delete-A.jse の作り方

 

Visual Studio Code や Notepad++ などのプログラミングに対応したエディタが使える場合、以下の13行をコピーペーストし、ファイル名(delete-A.jse)で保存してください。

プログラミング対応のエディタが手元になく、テキストエディタが使える場合、以下の手順で、delete-A.jse を作ります。

  1. テキストエディタを起動する
  2. 以下の13行をコピーペーストする
  3. 「ファイル」-「名前を付けて保存」を選び、名前を「delete-A.txt」で保存する
  4. delete-A.txt を右クリックし、プルダウンメニューから、「名前の変更」を選択する
  5. 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(“”)メソッドにより、その配列を連結します

 

詳細を知りたい方は、参考文献をご参照ください。

 

 

参考

  1. 仕事がはかどるJavaScriptファイル管理術
  2. JavaScript逆引きハンドブック

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です