1 件の投稿を表示中 (合計 4 個)
  • 作成者
    投稿
  • #32126
    Applek
    Participant

    お世話になっております。
    EmEditorで特定の拡張子のファイルのみを閉じるマクロはどう書けば動作しますでしょうか?
    以下はAIの出した候補ですが動きませんでした。

    /*
    function OnExecute() {
    var ext = “.txt”; // 閉じたい拡張子を指定
    var docs = editor.Documents;
    for (var i = docs.Count – 1; i >= 0; i–) {
    var doc = docs.Item(i);
    if (doc.FullName.toLowerCase().endsWith(ext)) {
    doc.Close();
    }
    }
    }
    */
    function OnExecute()
    {
    var ext = ‘.txt’; // 閉じたい拡張子を指定
    var docs = Documents;
    for (var i = docs.Count – 1; i >= 0; i–) {
    var doc = docs.Item(i);
    if (doc.FullName.toLowerCase().endsWith(ext)) {
    doc.Close();
    }
    }
    }

    #32127
    Applek
    Participant

    拡張子無しと複数の拡張子のファイルを一括で閉じるマクロを書きたいのですが各社AIは「EmEditorではコマンドで用意されていない」と回答します。
    よろしくお願いいたします。

    #32128
    Yutaka Emura
    Keymaster

    いつもお世話になっております。江村です。

    以下のように書いてください。

    
    #language = "v8"
    
    function OnExecute() {
        var ext = ".txt"; // 閉じたい拡張子を指定
        var docs = editor.Documents;
        for (var i = docs.Count; i >= 1; --i) {
            var doc = docs.Item(i);
            if (doc.FullName.toLowerCase().endsWith(ext)) {
                doc.Close();
            }
        }
    }
    
    OnExecute();
    

    または

    
    #language = "JScript"
    
    function OnExecute() {
        var ext = ".txt"; // 閉じたい拡張子を指定
        var docs = editor.Documents;
        for (var i = docs.Count; i >= 1; --i) {
            var doc = docs.Item(i);
            var nLen = doc.FullName.length;
            if( doc.FullName.toLowerCase().substring( nLen - ext.length, nLen ) == ext ) {
                doc.Close();
            }
        }
    }
    
    OnExecute();
    

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

    #32130
    Applek
    Participant

    ありがとうございます。動きました。
    無題ファイル、拡張子無しや他の複数の拡張子も登録する場合はどう書けばいけますでしょうか?
    編集中のファイルは対象外になりますでしょうか?
    よろしくお願いいたします。

1 件の投稿を表示中 (合計 4 個)
  • このトピックに返信するにはログインしてください。