[已解决]EmEditor宏文件js怎样只在指定文件夹中的文本文件中运行?
[i=s] 本帖最后由 qixiaobin0715 于 2018-10-8 10:14 编辑 [/i]如题。从网上得到了一个宏代码,但是如果文件夹中有其他文件总会提示用什么编码打开。不知道如何修改才能只打开文本文件,最好也能处理子文件夹下的文件。代码如下:[code]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);
}[/code] 用 GetExtensionName 判断一下文件后缀名是不是 txt 就能排除其它类型的文件了 [i=s] 本帖最后由 qixiaobin0715 于 2018-10-8 08:20 编辑 [/i]
[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=213637&ptid=50875]2#[/url] [i]Batcher[/i] [/b]
不知哪里出问题了,加上if判断之后,其他文件倒是排除了,但是只能对一个文本文件起作用。老大,是这样修改代码吗:[code] 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);
}[/code] [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=213642&ptid=50875]3#[/url] [i]qixiaobin0715[/i] [/b]
在for循环内部添加if判断 修改后的完整代码在3楼,成功!!!谢谢老大。
页:
[1]