2021/11/22に更新

【GASで時短】ファイル名に文字列を追加する

ドライブ

指定したフォルダ内のすべてのファイルに、プレフィックス(接頭辞)を付与するGoogle Apps Scriptです。例えばスマホで撮影した写真のファイル名に「yyyy/mm/dd 運動会_元のファイル名.jpg」のように変更することができます。

こんな悩みを解決します


  • Googleドライブに入っているすべての写真に、何の写真かわかるように説明を入れたい。
  • ドライブ内のファイルに案件を識別できるような文字列を付与したい。

用意するもの


ファイル名を変えたいファイルを、1つのフォルダにまとめて保存しておきます。

このスクリプトで出来ること


  • 指定されたフォルダに入っているすべてのファイルの名前を変えることができます。
  • 「DSC0001.jpg」のようなファイル名を「2021/11/24_運動会 DCS0001.jpg」のように変えることができます。

使い方


1.フォルダのURLを取得する

ファイル名を変えたいファイルが入っているフォルダのURLを取得します。
ファイルが入っているフォルダを開いて、アドレスバーに表示されているURLをコピーしてください。

2.スクリプトの実行

スクリプトを起動します。
メニューから「ドライブのファイルにプレフィックスを追加」を実行します。

3.URLの入力

書き換え対象のURLが聞かれますので、STEP1でコピーしたURLを入力します。

4.プレフィックスの入力

ファイル名に追加したい文字列が聞かれます。「2021/11/24 運動会_」など、追加する文字列を自由に入力してください。
元のファイル名と区切るために、最後にアンダースコア、ハイフンなどを入力することをおすすめします。

5.書き換え結果の確認

しばらく待つと「完了しました! フォルダを確認してください」というメッセージが表示されます。

画像が保存されているGoogleドライブフォルダを確認してください。ファイル名が変わっているはずです。
もし反映されていない場合はリロードすることで反映されるはずです。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00024/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  var ui = SpreadsheetApp.getUi()

  // メニューの表示名
  var menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('ドライブのファイルにプレフィックスを追加', 'add_prefix_drive_files');

  // メニューを画面に追加する
  menu.addToUi();
}

function add_prefix_drive_files() {

  // UIを取得
  const ui = SpreadsheetApp.getUi();

  // URLを入力する
  const url = ui.prompt('書き換え対象のフォルダURLを入力してください', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたら終了する
  if(url.getSelectedButton() == ui.Button.CANCEL){
    return;
  }

  // プレフィックスを入力する
  const prefix = ui.prompt('ファイル名に先頭に追加する文字列を入力してください', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたら終了する
  if(prefix.getSelectedButton() == ui.Button.CANCEL){
    return;
  }

  // URLからフォルダIDを取得する
  // https://drive.google.com/drive/folders/この部分がID
  const drive_id = url.getResponseText().match(/^.*\/folders\/(.+)$/)[1];

  // フォルダを取得する
  const folder = DriveApp.getFolderById(drive_id);

  // フォルダ内のファイルを取得する
  const files = folder.getFiles();

  // ファイルの数だけループ処理する
  while(files.hasNext()){

    // ファイルを取得
    let file = files.next();

    // 変更前のファイル名を取得
    let filename_before = file.getName();

    // 入力されたプレフィックスと変更前のファイル名を連結して、変更後のファイル名を作成
    let filename_after = prefix.getResponseText() + filename_before;

    // ファイルの名前を変更する
    file.setName(filename_after);

  }

  // 完了メッセージの表示
  ui.alert('完了しました! フォルダを確認してください');

}

関連するアプリ


【GASで時短】ファイル名の一部を削除する

フォルダ内のすべてのファイルを対象に、ファイル名の一部を消すことが出来るGoogle Apps Scriptです。ドライブでファイルのコピーをすると「のコピー」が付与されますがこのような文字列を消すことができます。

【GASで時短】ファイル名に作成日を追加する

ファイル名の先頭にファイルの作成日を追加するGoogle Apps Scriptです。ドライブのファイル一覧で表示されるのは「最終更新日」だけで、作成日は各ファイルをクリックして右ペインを見ないとわかりません。わからないならファイル名に追加してしまおうというスクリプトです。「yyyy-mm-dd_元のファイル名」のように変えることができます。

【GASで時短】更新からN時間以上経過したファイルを削除する

最終更新日時からN時間以上経過したファイルを削除するGoogle Apps Scriptです。GASが自動的に吐き出すログファイルや、不要なファイルの一括削除に使えます。「削除」といってもゴミ箱へ移動する処理なので、誤って実行しても復元が可能です。

【GASで時短】ドライブのファイルリストをスプレッドシートに出力する

指定したGoogle ドライブのファイル一覧をスプレッドシートに出力するGoogle Apps Scriptです。最終更新日時やオーナー、URLも出力するのでフォルダ整理する時に使えるかも。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp