- 作成者投稿
- 2024年12月5日 9:01 am #32126ApplekParticipant
お世話になっております。
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();
}
}
}2024年12月5日 2:16 pm #32127ApplekParticipant拡張子無しと複数の拡張子のファイルを一括で閉じるマクロを書きたいのですが各社AIは「EmEditorではコマンドで用意されていない」と回答します。
よろしくお願いいたします。2024年12月6日 2:21 am #32128Yutaka EmuraKeymasterいつもお世話になっております。江村です。
以下のように書いてください。
#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();
よろしくお願いいたします。
2024年12月6日 12:51 pm #32130ApplekParticipantありがとうございます。動きました。
無題ファイル、拡張子無しや他の複数の拡張子も登録する場合はどう書けばいけますでしょうか?
編集中のファイルは対象外になりますでしょうか?
よろしくお願いいたします。 - 作成者投稿
- このトピックに返信するにはログインしてください。