[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[问题求助] [已解决]EmEditor宏文件js怎样只在指定文件夹中的文本文件中运行?

本帖最后由 qixiaobin0715 于 2018-10-8 10:14 编辑

如题。从网上得到了一个宏代码,但是如果文件夹中有其他文件总会提示用什么编码打开。不知道如何修改才能只打开文本文件,最好也能处理子文件夹下的文件。代码如下:
  1. var fso = new ActiveXObject("Scripting.FileSystemObject");
  2. var oFolder = fso.GetFolder(prompt( "Folder", ""));
  3. fc = new Enumerator(oFolder.files);
  4. for (; !fc.atEnd(); fc.moveNext())
  5. {
  6.      var filePath = fc.item();
  7.      var oFile = fso.GetFile(filePath);
  8.         editor.OpenFile(filePath, 0, eeOpenDetectAll);
  9.     nFlags=eeFindNext | eeReplaceAll | eeFindReplaceRegExp;
  10.     document.selection.Replace (" ","",nFlags);
  11. }
复制代码

用 GetExtensionName 判断一下文件后缀名是不是 txt 就能排除其它类型的文件了
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

本帖最后由 qixiaobin0715 于 2018-10-8 08:20 编辑

回复 2# Batcher
不知哪里出问题了,加上if判断之后,其他文件倒是排除了,但是只能对一个文本文件起作用。老大,是这样修改代码吗:
  1.   var fso = new ActiveXObject("Scripting.FileSystemObject");
  2. var oFolder = fso.GetFolder(prompt( "Folder", ""));
  3. fc = new Enumerator(oFolder.files);
  4. for (; !fc.atEnd(); fc.moveNext())
  5. {
  6.   var filePath = fc.item();
  7.   var oFile = fso.GetFile(filePath);
  8.   var oFileExName = fso.GetExtensionName(filePath);
  9.   if (oFileExName != "txt")
  10.   {
  11.     continue;
  12.   }
  13.   editor.OpenFile(filePath, 0, eeOpenDetectUnicode | eeOpenDetectUTF8);
  14.   nFlags=eeFindNext | eeReplaceAll | eeFindReplaceRegExp;
  15.   document.selection.Replace (" ","",nFlags);
  16. }
复制代码

TOP

回复 3# qixiaobin0715


    在for循环内部添加if判断
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

修改后的完整代码在3楼,成功!!!谢谢老大。

TOP

返回列表