[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 CrLf 于 2015-3-28 12:37 编辑

自写库之原型链扩展:

DIYprototype

在 Prototype.js 的基础上增加了一些继承方法
http://www.bathome.net/lib/diy/DIYprototype.js

直接运行生效,会直接修改部分对象的 prototype 原型链
部分方法需要 Prototype 库和 Function 库支持

例如
  1. <script src=http://www.bathome.net/lib/Prototype.js></script>
  2. <script src=http://www.bathome.net/lib/diy/Function.js></script>
  3. <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
  4. <script>
  5. var array = ['批处理之家','js脚本库',2015,true]
  6. alert(array.EACH(function(a,b){return 'arr['+b+'] is '+typename(a)}).join('\r\n'))
  7. //显示数组中各个函数的内容和类型
  8. //EACH 可对数组的每个元素分别执行指定函数,并将返回值保存为数组返回
  9. close()
  10. </script>
复制代码
示例脚本:

callBack

创建各种回调函数,可用于辅助 Array.prototype.each
http://www.bathome.net/lib/diy/callBack.js

直接运行生效,会修改 Function 对象的 prototype 原型链,其中以 *_ 开头的方法都是用于创建回调函数
和 Array 的 EACH、_EACH 方法(来自 DIYprototype 库)是绝配

例如
  1. <script src=http://www.bathome.net/lib/Prototype.js></script>
  2. <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
  3. <script src=http://www.bathome.net/lib/diy/callBack.js></script>
  4. <script>
  5. array = [123,'bbs.bathome.net','批处理之家']
  6. text = array._EACH( //_EACH 可对数组的每个元素分别执行指定函数,并将返回值保存为数组返回
  7. callBack //此处仅用于引用 M_toString 和 P_length
  8. .M_toString() //M_toString() 取得一个用于调用 toString 的回调函数
  9. .P_length() //P_length 取得一个用于返回 length 的回调函数
  10. .M_toString(2)
  11. )
  12. //分别获取数组元素的长度,返回长度的二进制值
  13. alert(text)
  14. close()
  15. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-28 12:35 编辑

自写库之超级标签:

code

可在一个标签里写入多种语言的脚本
http://www.bathome.net/lib/diy/code.js

直接运行生效,无接口
在页面加载完毕后对所有 language=code 或 type=text/code 的 <script> 标签进行解析替换
将标签中各种语言拆分成不同的 <script> 标签

例如
  1. <script src=http://www.bathome.net/lib/diy/code.js></script>
  2. <script type=text/code>
  3. --------?js--------
  4. test("test")
  5. close()
  6. ------%vbs--------
  7. Sub test(str)
  8. MsgBox str
  9. End Sub
  10. '前缀 % 表示优先加载,含有 % 的部分将优先执行
  11. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-25 00:01 编辑

自写库之动态执行:

RunCommand

将接收到的命令行参数当作 js 语句来运行
http://www.bathome.net/lib/diy/RunCommand.js

直接运行生效,无接口
调用时,立即将整个命令行参数作为 js 语句执行,无返回值

例如
  1. <!-- :
  2. @echo off
  3. mshta "%~f0" alert('你好') ;alert('我来自批处理之家');close()
  4. pause & exit /b
  5. -->
  6. <script src=http://www.bathome.net/lib/diy/RunCommand.js></script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-25 00:05 编辑

自写库之 VBS 调用相关:

vbs

在 JScript 中调用 VBScript 函数
http://www.bathome.net/lib/diy/vbs.js

直接运行生效,创建 vbs、inputbox、msgbox、bin2asc、asc2bin 函数,用法详见原脚本
基于 MSScriptControl.ScriptControl 控件
本是为 JSConsole 写的,在 mshta 中其实没有什么意义了

例如
  1. <script src=http://www.bathome.net/lib/diy/vbs.js></script>
  2. <script>
  3. msgbox('我来自批处理之家',4096,'置顶提示')
  4. //调用 msgbox 的一种方式
  5. vbs('msgbox("我来自批处理之家",4096,"置顶提示")')
  6. //调用 msgbox 的另一种方式
  7. alert('"12345" 的字节码对应:'+bin2asc('12345'))
  8. //用 vbs 拆解字节流
  9. </script>
复制代码
示例脚本:

VBScript

在 JScript 中调用 VBScript 函数
http://www.bathome.net/lib/diy/VBScript.js

直接运行生效,创建 VBScript 对象和 VBScriptClass 类,包含 vbs 的所有内置函数的同名接口
VBScript 对象依赖于 VBScriptClass 类
VBScriptClass 类是完全由 VBS 创建的

例如
  1. <script src=http://www.bathome.net/lib/diy/VBScript.js></script>
  2. <script>
  3. var now = VBScript.Now()
  4. var after7days = VBScript.DateAdd('d',now,7)
  5. VBScript.MsgBox(after7days)
  6. //显示7天后的日期
  7. //实际上调用的是 VBScriptClass.Now0、VBScriptClass.DateAdd3、VBScriptClass.MsgBox1
  8. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-28 12:34 编辑

自写库之管理第三方工具:

Tools

创建一个 Tools 对象,用于管理批处理之家的脚本库
http://www.bathome.net/lib/diy/Tools.js

直接运行生效,创建名为 Tools 的全局对象,内含 12 个方法(和 Libs.js 的用法基本一致):

        test  测试能否正确在线获取库文件
        list  获取第三方命令行工具列表
        find  在可用列表中搜索指定工具,不区分大小写
        check  根据列表提供的文件大小检查指定工具是否不同,不区分大小写
        down  在线获取第三方命令行工具
        get  在线获取第三方命令行工具,与 down 的唯一区别是文件若已经存在则不会下载
        del  删除指定目录下的第三方工具
        exists  判断当前路径以及 %PATH% 路径下是存在指定的外部命令
        where  列举本机上指定的外部命令所在路径
        exec  执行命令
        cmd  使用 cmd 执行命令,并返回标准输出
        run  以指定方式运行指定程序



例如
  1. @echo off & ( break >"%~f0:Zone.Identifier" ) 2>nul
  2. mshta "%~f0"
  3. ::在批处理中将自身当作 hta 脚本运行,以下载 seq.exe
  4. seq  1  0.5  10
  5. ::调用 seq 输出 1~10 的数字,步数为 0.5
  6. pause & exit /b
  7. ::下面是 hta 部分
  8. <script src=http://www.bathome.net/lib/diy/Tools.js></script>
  9. <script>
  10. Tools.get('seq')
  11. //获取 seq 命令
  12. close()
  13. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-10 15:36 编辑

自写库之管理批处理之家的脚本库:

Libs

创建一个 Libs 对象,用于管理批处理之家的脚本库
http://www.bathome.net/lib/diy/Libs.js

直接运行生效,创建名为 Libs 的全局对象,内含 13 个方法(和 Tools.js 的用法基本一致):

        test  测试能否正确在线获取库文件
        list  获取 bathome 的库列表
        find  在可用列表中搜索指定工具,不区分大小写
        check  根据列表提供的文件大小检查指定工具是否不同,不区分大小写
        include  引用本地库
        append  附加在线库
        down  在线获取 bathome 的库,并附加到页面中
        get  在线获取 bathome 的库,与 down 的唯一区别是文件若已经存在则不会下载
        del  删除指定的库
        exists  判断当前路径下是存在指定的库
        where  列举本机库所在的路径
        run  获取库的内容,运行并返回结果
        offline  将脚本转为离线



例如
  1. <script src=http://www.bathome.net/lib/diy/Libs.js></script>
  2. <script>
  3. Libs.get('JSON2')
  4. Libs.get('beautify')
  5. //这两句调用了 JSON2.js 和 beautify.js,分别用于 JSON 解析和代码格式化
  6. </script>
  7. <script>
  8. var list = Libs.list()
  9. //这里获取了可用的在线库
  10. var arr = []
  11. for(var i in list){
  12. if(/日期|时间/.test(list[i].helpString)){
  13. arr.push(list[i])
  14. }
  15. }
  16. //这里遍历在线库列表,找到帮助信息包含“时间”与“日期”的项
  17. var json = JSON.stringify(arr)
  18. //将结果转为 JSON
  19. var text = js_beautify(json)
  20. //将结果转为便于阅读的格式
  21. alert(text)
  22. //输出结果
  23. close()
  24. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-9 01:34 编辑

自写库之 WSH 环境兼容:

WSH

模拟一个 WSH/WScript 对象
http://www.bathome.net/lib/diy/WSH.js

直接运行生效,创建 WScript 和 WSH 对象,包含 WSH 宿主对象的所有方法和属性
模拟 WScript.exe 执行时的环境,以方便移植本地的 js、vbs 代码,仿真度高达 95%~


例如
  1. @echo off
  2. dir /b | mshta "%~f0" "^.{1,25}\.bat$" igm | findstr .*
  3. pause & exit
  4. <script src=http://www.bathome.net/lib/diy/WSH.js></script>
  5. <script>
  6. var text = WSH.StdIn.ReadAll()
  7. //读取标准输入设备的输入
  8. var re = new RegExp(WSH.Arguments(0),WSH.Arguments(1))
  9. //根据命令行参数组成正则
  10. var match = text.match(re)
  11. //筛选出符合条件的文件名
  12. if(match)WSH.Echo(match.join('\r\n'))
  13. //若有匹配项则输出
  14. close()
  15. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-9 01:34 编辑

自写库之调试相关:

console

模拟一个 console 对象,并将其输出显示在当前窗口中。会导致当前窗口其他内容不可见
http://www.bathome.net/lib/diy/console.js

直接运行生效,创建 console 对象,有效接口有 error、group、info、log、warn,还有一些尚无具体实现的接口
类似于 FireBug 的 console 对象,相当于 FireBug 阉割到只剩小拇指的版本,但加载快,而且不在 body 中也能生效
若在 head 中调用,将导致页面上其他内容不显示

例如
  1. <body>
  2. <p>若要保留页面上的内容,请在 body 中调用 console.js</p>
  3. <script src=http://www.bathome.net/lib/diy/console.js></script>
  4. <script>
  5. console.log('普通青年')
  6. console.warn('文艺青年')
  7. console.error('213青年')
  8. </script>
  9. </body>
复制代码
示例脚本:

loadFirebug

调用后自动引用官网的 Firebug-lite.js。最强大的网页调试工具之一,按 F12 可呼出控制窗口
http://www.bathome.net/lib/diy/loadFirebug.js

直接运行生效,创建 console 对象和 FirebugUI 框架
运行后自动加载 FireBug(比较慢),F12 快捷键呼出窗口

例如
  1. <script src=http://www.bathome.net/lib/diy/loadFirebug.js></script>
  2. <script>var arr=[1,2,3]
  3. var obj={a:1,b:2}
  4. //可在控制台中输入 arr 和 obj 查看变量值</script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-3-9 02:55 编辑

自写库之创建 APPLICATION 对象:

mshta

创建一个 mshta 对象,以获取窗口信息和改变窗口形态
http://www.bathome.net/lib/diy/mshta.js

直接运行生效,创建名为 mshta 的全局对象
会自动用 HTA:APPLICATION 标签创建一个名为 mshta 的对象
若已存在 HTA:APPLICATION 标签,则将其 id 改为 mshta
可查询当前脚本窗口的各类属性(有少数属性是可写的),具体属性请参考:https://msdn.microsoft.com/en-us/library/ms536495(VS.85).aspx

例如
  1. <script src=http://www.bathome.net/lib/diy/mshta.js></script>
  2. <script>
  3. //修改自 MS 官方的例子
  4. sTempStr =
  5. "applicationName = " + mshta.applicationName + "\n" +
  6. "border           = " + mshta.border          + "\n" +
  7. "borderStyle    = " + mshta.borderStyle     + "\n" +
  8. "caption          = " + mshta.caption         + "\n" +
  9. "commandLine = " + mshta.commandLine     + "\n" +
  10. "icon             = " + mshta.icon            + "\n" +
  11. "maximizeButton = " + mshta.maximizeButton  + "\n" +
  12. "minimizeButton = " + mshta.minimizeButton  + "\n" +
  13. "showInTaskBar  = " + mshta.showInTaskbar   + "\n" +
  14. "singleInstance = " + mshta.singleInstance  + "\n" +  
  15. "sysMenu          = " + mshta.sysMenu         + "\n" +
  16. "version          = " + mshta.version         + "\n" +
  17. "windowState      = " + mshta.windowState     + "\n" ;
  18. alert(sTempStr)
  19. close()
  20. </script>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-8-31 18:10 编辑

自写库之低调运行:

hide

隐藏 mshta 窗口,运行后将导致 setTimeout 和 setInterval 失效
http://www.bathome.net/lib/diy/hide.js

直接运行生效,无接口
会自动用 HTA:APPLICATION 标签创建一个名为 mshta 的对象
运行后将隐藏窗口和任务栏图标,并在页面完全加载完毕后退出窗口(依赖 window.onload)
若要使用 setTimeout 和 setInterval 请保证 window.KEEP_RUNNING 为非 0 数字

例如
  1. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  2. <script>
  3. KEEP_RUNNING = 5
  4. setInterval(function(){alert('KEEP_RUNNING =' + --KEEP_RUNNING)},1000)
  5. </script>
复制代码
示例脚本:

Zones0

设置 ie 区域设置等级为最低,以免在使用 iframe 访问网页时弹出提示
http://www.bathome.net/lib/diy/Zones0.js

直接运行生效,创建 Zones0 对象,有接口
设置 ie 区域设置等级为最低,以免弹出提示,页面加载完毕或窗口正常关闭时会自动恢复原有设置
若未即时还原,将导致使用 ie 内核的浏览器面临风险
也可用 Zone0.recover() 手动还原,之后仍可用 Zone0.disalbe() 手动降低区域为最低,或用 Zone0.modify(n) 手动修改区域设置

例如
  1. <script src=http://www.bathome.net/lib/diy/Zones0.js>可以对比一下去掉这行后的效果</script>
  2. <iframe src=http://www.bathome.net></iframe>
复制代码
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 CrLf 于 2015-11-23 17:51 编辑

19 个自写库
名称 版本信息帮助信息bathome 库地址
callBack  diy创建各种回调函数,可用于辅助 Array.prototype.eachhttp://www.bathome.net/lib/diy/callBack.js
ch2num  diy阿拉伯数字与中文数字互转http://www.bathome.net/lib/diy/ch2num.js
code  diy可在一个标签里写入多种语言的脚本http://www.bathome.net/lib/diy/code.js
console  diy模拟一个 console 对象,并将其输出显示在当前窗口中。会导致当前窗口其他内容不可见http://www.bathome.net/lib/diy/console.js
DIYprototype  diy在 Prototype_MOD.js 的基础上增加了一些继承方法http://www.bathome.net/lib/diy/DIYprototype.js
Function  diy各种自定义的常用函数,基于 WSH.js 和 Prototype.jshttp://www.bathome.net/lib/diy/Function.js
GetRequest  diy用于取得URL地址中的变量http://www.bathome.net/lib/diy/GetRequest.js
hide  diy隐藏 mshta 窗口,运行后将导致 setTimeout 和 setInterval 失效http://www.bathome.net/lib/diy/hide.js
iconv  diy字符编码转换http://www.bathome.net/lib/diy/iconv.js
Libs  diy创建一个 Libs 对象,用于管理批处理之家的脚本库http://www.bathome.net/lib/diy/Libs.js
list  diy用于罗列各种信息的自定义的函数http://www.bathome.net/lib/diy/list.js
loadFirebug  linkto 1.4.0 compressed调用后自动引用官网的 Firebug-lite.js。最强大的网页调试工具之一,按 F12 可呼出控制窗口http://www.bathome.net/lib/diy/loadFirebug.js
mshta  diy创建一个 mshta 对象,以获取窗口信息和改变窗口形态http://www.bathome.net/lib/diy/mshta.js
Tools  diy创建一个 Tools 对象,用于管理第三方命令行工具http://www.bathome.net/lib/diy/Tools.js
RunCommand  diy将接收到的命令行参数当作 js 语句来运行http://www.bathome.net/lib/diy/RunCommand.js
vbs  diy在 js 中模拟使用 vbs 代码http://www.bathome.net/lib/diy/vbs.js
VBScript  diy在 JScript 中调用 VBScript 函数http://www.bathome.net/lib/diy/VBScript.js
WSH  diy模拟一个 WSH/WScript 对象http://www.bathome.net/lib/diy/WSH.js
Zones0  diy设置 ie 区域设置等级为最低,以免在使用 iframe 访问网页时弹出提示http://www.bathome.net/lib/diy/Zones0.js

45 个转载的库
名称 版本信息帮助信息bathome 库地址
accounting  0.4.1 compressed数字格式化通用类http://www.bathome.net/lib/accounting.js
ActiveXFileWrapper  N/A mod基于 fso 和 ado 的封装类,可以直观地操作文件,默认编码为 UTF-8http://www.bathome.net/lib/ActiveXFileWrapper.js
beautify-css  1.5.4css 格式化http://www.bathome.net/lib/beautify-css.js
beautify-html  1.5.4html 格式化http://www.bathome.net/lib/beautify-html.js
beautify  1.5.4js 格式化http://www.bathome.net/lib/beautify.js
bignumber  2.0.0 compressed超大数字运算http://www.bathome.net/lib/bignumber.js
Blob  N/A模拟 Blob 对象,是一个可以存储二进制文件的容器http://www.bathome.net/lib/Blob.js
CoffeeScript  1.9.0 compressedCoffeeScript 是 JavaScript 优雅的转义语言,为原生语法添加许多语法糖http://www.bathome.net/lib/coffeescript.js
cookies  1.2.0 compressed便捷地读写Cookiehttp://www.bathome.net/lib/cookies.js
csv  3.6.1 compressedCSV的JavaScript解析库http://www.bathome.net/lib/csv.js
diff  0.3.0 compressed比较对象之间的差异http://www.bathome.net/lib/diff.js
difflib  1.0.0 merge diffview.js比较文本之间的差异,还能展现在网页上http://www.bathome.net/lib/difflib.js
Dojo  1.10.4 compressed著名的JS工具包http://www.bathome.net/lib/dojo.js
Fuse  1.2.2 compressed轻量级模糊查询http://www.bathome.net/lib/fuse.js
Ini  1.0.0INI的JavaScript解析库http://www.bathome.net/lib/ini.js
jQuery  1.11.2 compressed继prototype之后又一个优秀的Javascrīpt框架http://www.bathome.net/lib/jquery.js
js2coffee  2.0 compressed可将 JavaScript 翻译为 CoffeeScript.jshttp://www.bathome.net/lib/js2coffee.js
Json2  2014-02-04 compressed模拟 JSON 对象http://www.bathome.net/lib/json2.js
JSZip  2.4.0 compressed用 javascript 生成 zip 文件http://www.bathome.net/lib/jszip.js
KeyboardJS  0.4.1 compressed支持单一快捷键或者组合键的库http://www.bathome.net/lib/keyboard.js
Keypress  2.1.0 compressed有着许多特别功能的输入捕捉库http://www.bathome.net/lib/keypress.js
lazy  0.4.0 compressed类似 Underscore,但使用懒惰求值的办法大幅提升效率http://www.bathome.net/lib/lazy.js
lodash  2.4.1 compat完全兼容 Underscore 语法的增强库,增加了许多新的方法http://www.bathome.net/lib/lodash.js
Math  1.3.0 compressed多用途的JavaScript数学库http://www.bathome.net/lib/Math.js
moment  2.8.4 with-locales compressed为日期计算提供全面的方法http://www.bathome.net/lib/moment.js
mootools  1.5.1 compressed一个简洁,模块化,面向对象的开源JavaScript web应用框架http://www.bathome.net/lib/mootools.js
mousetrap  1.4.6 compressed快捷键库,可直观地定义组合键http://www.bathome.net/lib/mousetrap.js
naturalSort  0.7支持对字符串中的小数、ip、文件名、日期等进行自然排序自然排序http://www.bathome.net/lib/naturalSort.js
numeric  1.2.6 compressed支持特殊的数学计算,擅长本地执行小型计算http://www.bathome.net/lib/numeric.js
numbers  0.5.0一个可以运算复杂数据运算的js库,名字叫Numbers.js,可以进行三角,矩阵等复杂运算http://www.bathome.net/lib/numbers.js
Prototype  1.7.2 compressed非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajaxhttp://www.bathome.net/lib/Prototype.js
RequireJS  2.1.16 mod非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一http://www.bathome.net/lib/require.js
reveal  3.1.0基于CSS的幻灯片工具http://www.bathome.net/lib/reveal.js
sea  2.2.3 compressed一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制http://www.bathome.net/lib/sea.js
sjcl  N/A compressed由斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全、快速、短小精悍、易使用、跨浏览器的JavaScript加密库http://www.bathome.net/lib/sjcl.js
shortcut  2.01.B提供更为方便地处理键盘快捷键的函数http://www.bathome.net/lib/shortcut.js
sprintf  1.0.2 mod模拟 sprintf/vsprintfhttp://www.bathome.net/lib/sprintf.js
strftime  0.8.2 compressed模拟 strftimehttp://www.bathome.net/lib/strftime.js
Sugar  1.4.1 full compressed为内置对象扩展了一些有用的、直观的方法,会影响 prototype,和 Prototype_MOD.js 有部分重合http://www.bathome.net/lib/Sugar.js
taffy  2.7 compressed基于 JSON 管理数据库http://www.bathome.net/lib/taffy.js
typeName  1.0.1比 typeof 得到的结果准确一点,但其实更建议调用 vbs 的 TypeNamehttp://www.bathome.net/lib/typename.js
Underscore  1.7.0 compressed提供了几十种函数式编程的方法,大大方便了Javascript的编程http://www.bathome.net/lib/underscore.js
XDate  0.8 compressed为日期计算提供全面的方法http://www.bathome.net/lib/xdate.js
XRegExp  2.0.0 compressed增加了更多未来浏览器可能包含的功能(ECMAScript 4 - ES4)http://www.bathome.net/lib/xregexp.js
zip  N/A用 JavaScript 实现的 zip 压缩和解压缩工具包http://www.bathome.net/lib/zip.js


顺便附上一些实用的 url,批处理也可用:



2

评分人数

TOP

返回列表