目录

  • 准备
  • 遍历文件夹
  • 遍历所有文件
  • 获取文件MD5值
  • 创建Excel文件

JScript并不是我们熟知的JavaScript,但是跟JavaScript很像,如果要在Windows环境中做一些自动化工作,比直接写BAT批处理脚本要简单些。

JScript是由微软公司开发的活动脚本语言,是微软对ECMAScript规范的实现。JScript最初是随Internet Explorer 3.0于1996年8月发布。在网络程序员谈论Internet Explorer中的JavaScript的时候,他们实际上是指JScript。和其他活动脚本一样,它后来也被Windows Script Host(WSH)和Active Server Pages所支持。典型的JScript源文件使用的扩展名是.js。JScript最新的版本是基于尚未定稿的ECMAScript4.0版规范的JScript .NET,并且可以在微软的.Net环境下编译。JScript在ECMA的规范上增加了许多特性。 ——百度百科

准备

测试环境:Windows 10 专业版

测试文件夹目录结构如下:

 testfolder|---test.bat|---test.js|---folder1|---|---folder1.1|---|---folder1.2|---|---a.txt|---|---b.txt|---|---c.txt

test.bat是批处理文件,测试的时候直接点击这个文件运行,该文件内容如下:

@rem
@rem
@rem 我是注释
@rem cscript ./test.jspause

test.js文件是具体放JScript代码的地方,将下列功能的代码放在这里。

特别注意:中文系统下,将所有文件的编码格式改为GB2312,否则有乱码导致程序存在中文时有异常。

遍历文件夹

/*******************************************
*遍历所有子文件夹
*******************************************/
var folderPath = "./folder1";
var folers = GetFolderList(folderPath);
for (; !folers.atEnd(); folers.moveNext())
{var folderName = folers.item();WScript.Echo("文件夹名称:"+folderName.Name);WScript.Echo("文件夹路径:"+folderName);
}/*******************************************
*获取指定路径文件夹下的所有子文件夹
*@folderspec:文件夹路径
*return:子文件夹集合
*******************************************/
function GetFolderList(folderspec)
{var fso, f, fc;fso = new ActiveXObject("Scripting.FileSystemObject");f = fso.GetFolder(folderspec);fc = new Enumerator(f.SubFolders);return(fc);
}

输出结果:

C:\Users\Administrator\Desktop\testfolder>cscript ./test.js
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。文件夹名称:folder1.1
文件夹路径:C:\Users\Administrator\Desktop\testfolder\folder1\folder1.1
文件夹名称:folder1.2
文件夹路径:C:\Users\Administrator\Desktop\testfolder\folder1\folder1.2C:\Users\Administrator\Desktop\testfolder>pause
请按任意键继续. . .

遍历所有文件

/*******************************************
*遍历所有文件
*******************************************/
var folderPath = "./folder1";
var files = GetFolderFileList(folderPath);
for (; !files.atEnd(); files.moveNext())
{var fileName = files.item();WScript.Echo("文件名称:"+fileName.Name);WScript.Echo("文件路径:"+fileName);
}/*******************************************
*获取指定文件夹路径下的所有文件
*@folderspec:文件夹路径
*return:文件夹下的文件集合
*******************************************/
function GetFolderFileList(folderspec)
{   var fso, folder, files;fso = new ActiveXObject("Scripting.FileSystemObject");folder = fso.GetFolder(folderspec);files = new Enumerator(folder.files);return files;
}

输出结果:

C:\Users\Administrator\Desktop\testfolder>cscript ./test.js
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。文件名称:a.txt
文件路径:C:\Users\Administrator\Desktop\testfolder\folder1\a.txt
文件名称:b.txt
文件路径:C:\Users\Administrator\Desktop\testfolder\folder1\b.txt
文件名称:c.txt
文件路径:C:\Users\Administrator\Desktop\testfolder\folder1\c.txtC:\Users\Administrator\Desktop\testfolder>pause
请按任意键继续. . .

获取文件MD5值

有时候需要找出修改的文件,对比文件MD5值是有用的,耗时看文件大小,文件太大时间可能很长。

/*******************************************
*遍历所有文件,获取文件MD5值
*******************************************/
var folderPath = "./folder1";
var files = GetFolderFileList(folderPath);
for (; !files.atEnd(); files.moveNext())
{var fileName = files.item();WScript.Echo(fileName.Name+"的MD5值:"+GetFileMD5(fileName));
}/*******************************************
*获取指定文件夹路径下的所有文件
*@folderspec:文件夹路径
*return:文件夹下的文件集合
*******************************************/
function GetFolderFileList(folderspec)
{   var fso, folder, files;fso = new ActiveXObject("Scripting.FileSystemObject");folder = fso.GetFolder(folderspec);files = new Enumerator(folder.files);return files;
}/*******************************************
*获取文件MD5值
*@filePath:脚本文件绝对路径
*******************************************/
function GetFileMD5(filePath)
{var objShell = new ActiveXObject("WScript.Shell");var iReturnMsg = objShell.Exec("cmd.exe /c certutil -hashfile \""+filePath+"\" MD5");var result = iReturnMsg.StdOut.ReadAll();var splitArr = result.split("\n");var fileMD5 = splitArr[1].replace(/\s/g,"");return fileMD5;//WScript.Echo(fileMD5);
}

输出结果:

C:\Users\Administrator\Desktop\testfolder>cscript ./test.js
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。a.txt的MD5值:22d42eb002cefa81e9ad604ea57bc01d
b.txt的MD5值:1efc98f0102b2109fb90307e6e1c484e
c.txt的MD5值:ba2ee8e2ba48e6667dca8c83dab38f4cC:\Users\Administrator\Desktop\testfolder>pause
请按任意键继续. . .

创建Excel文件

CreateExcelFile("./texcel.xlsx",3);/*******************************************
*创建Excel文件
*@filePathName:文件路径,相对路径或绝对路径
*@sheetCount:Excel中Sheet的个数
*******************************************/
function CreateExcelFile(filePathName,sheetCount)
{try{var ExcelApp = new ActiveXObject("Excel.Application");var WshShell = WScript.CreateObject ("WScript.Shell");var currentPath = WshShell.CurrentDirectory;var i;ExcelApp.Visible = false;ExcelApp.DisplayAlerts = false;var ExcelBook = ExcelApp.Workbooks.Add;for (i=1;i<sheetCount;++i){ExcelBook.Worksheets.Add;}if (filePathName.indexOf(".") == 0){currentPath = currentPath + filePathName.slice(1);}else{currentPath = filePathName;}currentPath = currentPath.replace(/\//g,"\\");//currentPath = currentPath.replace(/\\/g,"\\\\"); 路径在变量中不用转义//保存表格ExcelBook.SaveAs(currentPath);}catch(e){WScript.Echo("发生异常:"+e);}finally{//用 Application 对象用 Quit 方法关闭 Excel。ExcelApp.Quit();}
}

更多

常用的JScript代码整理相关推荐

  1. jsp网页嵌入PHP网页,JSP_(jsp/html)网页上嵌入播放器(常用播放器代码整理),这个其实很简单,只要在HTML上 - phpStudy...

    (jsp/html)网页上嵌入播放器(常用播放器代码整理) 这个其实很简单,只要在HTML上添加以上代码就OK了,前提是你的电脑上已经安装了播放器,如RealPlay. 还有更多的的播放器和设置可供选 ...

  2. (jsp/html)网页上嵌入播放器(常用播放器代码整理) http://www.jb51.net/article/37267.htm...

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助 这个其实很简单,只要在HTML上添加以上代码就OK了 ...

  3. 织梦标签调用:Dedecms模板常用调用标签代码整理

    1.最新文档列表 1-5都为调用的arclist标签 {dede:arclist typeid='' titlelen='28' row='60' col='1'} ?[field:title/] { ...

  4. phpcms V9 常用函数 及 代码整理

    1 <?php 2 //转换字符串或者数组的编码 3 str_charset($in_charset, $out_charset, $str_or_arr) 4 5 //获取菜单 6 menu( ...

  5. 常用代码整理(重要)

    常用代码整理: 1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex ...

  6. [转]NSIS常用代码整理

    转自 http://www.flighty.cn/html/bushu/20120827_156.html 这是一些常用的NSIS代码,少轻狂特意整理出来,方便大家随时查看使用.不定期更新哦~~~ ; ...

  7. IntellJ IDEA 基础之 一些常用插件plugin 简单整理 (辅助提高编写代码效率)

    IntellJ IDEA 基础之 一些常用插件plugin 简单整理 (辅助提高编写代码效率) 目录 IntellJ IDEA 基础之 一些常用插件plugin 简单整理 (辅助提高编写代码效率) 一 ...

  8. 常用的积分方法讨论(数学表达与代码整理)(龙格-库塔、中值积分、欧拉积分)

    积分方法讨论(数学表达与代码整理) 数学原理 1.1 四元数与角速度的关系 在无人机或无人车的导航系统中常常采用四元数代替欧拉角来表示机体的旋转,因为欧拉角在计算过程中容易产生奇异,这与欧拉角的计算需 ...

  9. html移动端隐藏代码,html Css PC 移动端 公用部分样式代码整理

    css常用公用部分样式代码整理: body, html, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul, ol, li ...

  10. 几则常用的BASIS技巧整理

    几则常用的BASIS技巧整理 1.创建一个新的用户 2.创建一个新的角色 3.设置SAPGUI自动LogOut功能 4.利用scat进行数据导入 5.配置个人信息 6.常用的BASIS相关的T-COD ...

最新文章

  1. Centos7.x系统配置上的变化【转】
  2. Linux 启动过程详解
  3. Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)
  4. 深度学习在语音识别中的声学模型以及语言模型的应用
  5. UE4 Fix – “Lighting build failed. Swarm failed to kick off.”
  6. python制作文本编辑器_Python小实战:制作文本编辑器
  7. java 加密 encrypt_JAVA Encrypter 加密算法
  8. [zz]ASP.NET MVC2框架验证学习笔记
  9. alwayson高可用组_AlwaysOn可用性组–如何在集群实例和独立实例之间设置AG(第2部分)
  10. poj1470 LCA倍增法
  11. 查看数据库文件大小写
  12. 关于redis启动流程介绍
  13. jquery 移动端 ui 组件库 移动端前端UI库—Frozen UI、SUI Mobile、light7、WeUI、jqweui
  14. 食堂配送公司订餐微信小程序开发制作定制功能需求文档
  15. 2020华为大数据参赛总结
  16. 中学-知识与能力【8】
  17. 《大话移动通信(第2版)》赠书活动名单公告
  18. seewo一体机使用教程
  19. cisco packet tracer_交换机配置/mac地址表(图解version:8+)
  20. Python网络爬虫数据采集实战(八):Scrapy框架爬取QQ音乐存入MongoDB

热门文章

  1. 网页另存word分页
  2. 关于HTML系统学习(1)
  3. Linux下安装Adobe Flash Player插件(Firefox)
  4. centos win xp双系统 安装手记 9660 grldr U盘安装
  5. 服务器操作系统 份额,2019年6月全球桌面操作系统市场份额数据:Linux占比1.55%...
  6. 【redis】Redis中的队列list实现秒杀活动抢购
  7. oracle rac定时清理归档日志,Rman 定时删除归档日志
  8. html超链接本地文件为什么打不开,为什么word文件的本地超链接打不开呢
  9. 【Python神器】推荐这款傻瓜式GIF制作工具,以后别再说不会了(好用到爆~)
  10. 计算机对学习的好处,学习计算机的好处