标题: [问题求助] [已解决]EmEditor宏文件js怎样只在指定文件夹中的文本文件中运行? [打印本页]
作者: qixiaobin0715 时间: 2018-10-6 22:02 标题: [已解决]EmEditor宏文件js怎样只在指定文件夹中的文本文件中运行?
本帖最后由 qixiaobin0715 于 2018-10-8 10:14 编辑
如题。从网上得到了一个宏代码,但是如果文件夹中有其他文件总会提示用什么编码打开。不知道如何修改才能只打开文本文件,最好也能处理子文件夹下的文件。代码如下:- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var oFolder = fso.GetFolder(prompt( "Folder", ""));
- fc = new Enumerator(oFolder.files);
- for (; !fc.atEnd(); fc.moveNext())
- {
- var filePath = fc.item();
- var oFile = fso.GetFile(filePath);
- editor.OpenFile(filePath, 0, eeOpenDetectAll);
- nFlags=eeFindNext | eeReplaceAll | eeFindReplaceRegExp;
- document.selection.Replace (" ","",nFlags);
- }
复制代码
作者: Batcher 时间: 2018-10-7 22:32
用 GetExtensionName 判断一下文件后缀名是不是 txt 就能排除其它类型的文件了
作者: qixiaobin0715 时间: 2018-10-8 06:59
本帖最后由 qixiaobin0715 于 2018-10-8 08:20 编辑
回复 2# Batcher
不知哪里出问题了,加上if判断之后,其他文件倒是排除了,但是只能对一个文本文件起作用。老大,是这样修改代码吗:- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var oFolder = fso.GetFolder(prompt( "Folder", ""));
- fc = new Enumerator(oFolder.files);
- for (; !fc.atEnd(); fc.moveNext())
- {
- var filePath = fc.item();
- var oFile = fso.GetFile(filePath);
- var oFileExName = fso.GetExtensionName(filePath);
- if (oFileExName != "txt")
- {
- continue;
- }
- editor.OpenFile(filePath, 0, eeOpenDetectUnicode | eeOpenDetectUTF8);
- nFlags=eeFindNext | eeReplaceAll | eeFindReplaceRegExp;
- document.selection.Replace (" ","",nFlags);
- }
复制代码
作者: Batcher 时间: 2018-10-8 08:14
回复 3# qixiaobin0715
在for循环内部添加if判断
作者: qixiaobin0715 时间: 2018-10-8 08:38
修改后的完整代码在3楼,成功!!!谢谢老大。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |