找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16486|回复: 4

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

[复制链接]
发表于 2018-10-6 22:02:36 | 显示全部楼层 |阅读模式
本帖最后由 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. }
复制代码
发表于 2018-10-7 22:32:53 | 显示全部楼层
用 GetExtensionName 判断一下文件后缀名是不是 txt 就能排除其它类型的文件了
 楼主| 发表于 2018-10-8 06:59:59 | 显示全部楼层
本帖最后由 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. }
复制代码
发表于 2018-10-8 08:14:04 | 显示全部楼层
回复 3# qixiaobin0715


    在for循环内部添加if判断
 楼主| 发表于 2018-10-8 08:38:15 | 显示全部楼层
修改后的完整代码在3楼,成功!!!谢谢老大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:42 , Processed in 0.016970 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表