返回列表 发帖

[原创教程] 批处理之家 js 在线脚本库

本帖最后由 CrLf 于 2016-1-12 15:47 编辑

咱自己的在线脚本库上线啦~
目前的库共有 64 个,涵盖框架、在线获取第三方工具、模拟对象、语法增强、dom 操作、格式转换、文本解析、常用函数、网页特效等范畴
依托于 bathome,因服务器每日维护的原因,大约在凌晨3点~4点之间无法访问

脚本库暂由本人编写收集和维护,json 格式的在线 js 库列表见 http://www.bathome.net/lib/bathomeLib.json,最后更新于 2015-12-24,总数 64 个
第三方工具库则依托 Batch-CN,table 格式的第三方工具列表见 http://batch-cn.qiniudn.com/list/tool.txt,最后更新于 2015-12-30,总数 1200 个
路径区分大小写,bathomeLib.json 和 bathomeLib.JSON 不同
建议通过 Libs.js 的 Libs.get 方法、以及用 Tools.js 的 Tools.get 来调用脚本和下载第三方,可兼容大小写,例如 Libs.get('WSH') 和 Libs.get('wsh') 是等价的


该脚本库主要用于 hta 环境,尤其适合用在在线 HTA 脚本bat+hta 混编的情况下
这里举几个例子:

第一个例子,隐藏下载指定的第三方工具
(由 Batch-CN 提供)
请保存为 .bat 后缀名:
<!-- :
@echo off & ( break >"%~f0:Zone.Identifier" ) 2>nul
mshta "%~f0"
printf.exe "你好,我是printf.exe\n"
pause
-->
<script src=http://bbs.bathome.net/lib/diy/hide.js></script>
<script src=http://bbs.bathome.net/lib/diy/Tools.js></script>
<script>
Tools.get('printf')
//调用 Tools 对象的 get 方法在线获取第三方工具 printf
//若已经存在可调用的 printf.exe,则不重复下载
//引用 Batch-CN 的集成资源,感谢 bailong360 提供帮助
</script>COPY
示例脚本:

第二个例子,解析地址中的变量和命令行参数
利用 WSH.js 模拟出 WSH 环境(相似度>90%)
请保存为 .bat 后缀名:
@echo off
mshta "%~f0"0】开关测试 "【1】嵌套的""测试"   "【2】单个参数测试","【3】其他分隔符测试" | more
pause&exit
>>>>>>>>>>
<script src=http://www.bathome.net/lib/diy/Libs.js></script>
<script>
Libs.get('WSH')
Libs.get('hide')
</script>
<script>
for(var i=0;i<WScript.Arguments.length;i++){
        WSH.Echo(WScript.Arguments(i))
}
</script>COPY
示例脚本:

第三个例子,在一个标签中使用所有语言
使用 code.js 解析 language=code 的 script 节点,并处理为
这里用不到批处理,所以保存为 .hta 就好了:
<script src=http://www.bathome.net/lib/diy/hide.js></script>
<script src=http://www.bathome.net/lib/diy/code.js></script>
<script src=http://www.bathome.net/lib/coffeescript.js></script>
<script language=code>
-------VBScript------
MsgBox "我是 VBScript"
-------JavaScript------
alert('我是 JavaScript')
-------CoffeeScript------
alert '我是 CoffeeScript'
</script>COPY
这里 -------JavaScript------ 中的 - 也可以改用连续超过三次的其他部分字符
比如 ###JavaScript###,或 ~~~JavaScript~~~
示例脚本:


友情提示
如果运行前出现这个提示,请取消“打开此文件前总是”,然后点击运行:

或者在文件属性里点击解除锁定亦可
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
6

评分人数

Math.js 好像无了
http://www.bathome.net/lib/Math.js

TOP

vbs  diy        在 js 中模拟使用 vbs 代码        http://www.bathome.net/lib/diy/vbs.js;第一句重要代码var sc = new ActiveXObject('MSScriptControl.ScriptControl');win64位直接出错,搜也搜不到好的解决方法。

TOP

折腾数日,大功告成
等 Batcher 伤愈,哥来发一个牛逼哄哄的新玩具
2

评分人数

TOP

回头发一个更劲爆的玩意,还是这个系列,改进一下

TOP

回复 21# 依山居


    nice,不过其实之前有上传一个 ip.php 到咱网站:http://www.bathome.net/s/ip.php

TOP

回复 20# CrLf


    前些时间我也收集了一些,有些网站的接口是对curl的UA做了处理,如果是用curl访问的话,得到就是比较干净的文本。

http://my.oschina.net/ysj/blog/511724
#满足了一下自己的搜集癖,搜集了不少可以用来查询外网IP的网址和方法。
#国内某网站的接口,只返回IP
curl ip.6655.com/ip.aspx
curl whatismyip.akamai.com
#更多用法访问ifconfig.co
wget -qO - ifconfig.co
curl icanhazip.com
dig +short myip.opendns.com @resolver1.opendns.com
curl ident.me
curl v4.ident.me
curl v6.ident.me
#慢
curl curlmyip.com
curl ifconfig.me
curl inet-ip.info
#返回IP和地区
curl ip.6655.com/ip.aspx?area=1
curl ip.cn
curl cip.cc
curl ipip.net
#需要翻x墙,只返回IP
curl ip.appspot.com
#参考 http://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-bash
#有人给了以下测试方法
wget https://raw.githubusercontent.com/rsp/scripts/master/externalip-benchmark
chmod a+x externalip-benchmark
./externalip-benchmark
#返回JSON格式的数据
C:\>curl httpbin.org/get
{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.28.1"
  },
  "origin": "222.216.164.78",
  "url": "http://httpbin.org/get"
}
C:\>curl httpbin.org/ip
{
  "origin": "116.11.199.77"
}COPY

TOP

回复 16# yu2n


    搜了一下,发现已经有很多类似接口,有的甚至能直接返回 js 代码,就不搞了
    不过都是 ip 相关的,没找到干净返回时间的接口
    url 已更新到2楼

TOP

回复 18# yu2n


    有哪些比较好的库是 ie6 下能用的,推荐几个呗?
    也欢迎自己实现,写好后如果完整、安全而且语法不至于太过怪异的话,我也把它加到在线库里去

TOP

回复 17# CrLf

Windows Server 2003 的 IE6 测试 HTA 有问题。
可能是安全性方面的原因吧。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 16# yu2n


    忘了加…
    特地挑了支持 ie6 ie7 的库啊,本来还有 d3.js,后来都撤了,xp 上的 mshta 好像就是 ie6 内核的
    ip 好办,回头集成一个集校时、显 ip 于一身的库

TOP

严重支持。

自写库为什么不署上自己的大名呢?

抛弃了IE6?

来个客户端IP显示功能吧。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

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

自写库之常用函数:

Function

各种自定义的常用函数,基于 WSH.js 和 Prototype.js
http://www.bathome.net/lib/diy/Function.js

直接运行生效,提供 getopts、type、echo、download、clone 等函数
是比较基础的函数集

例如
<script src=http://www.bathome.net/lib/Prototype.js></script>
<script src=http://www.bathome.net/lib/diy/WSH.js></script>
<script src=http://www.bathome.net/lib/diy/Function.js></script>
<script>
download('http://bbs.bathome.net/index.php')
//下载批处理之家的首页
alert(getopts('命令行 "切分 测试"'))
//按 windows 下的规则切分命令行参数
close()
</script>COPY
示例脚本:

GetRequest

用于取得URL地址中的变量
http://www.bathome.net/lib/diy/GetRequest.js

直接运行生效,提供 GetRequest 函数

例如
<script src=http://www.bathome.net/lib/diy/GetRequest.js></script>
<script>
var values = GetRequest()
//获取URL中的变量,保存在对象中
alert(values['批处理之家'])
alert(values['楼主'])
//显示URL中指定对象的变量值
close()
</script>COPY
示例脚本:

ch2num

阿拉伯数字与中文数字互转
http://www.bathome.net/lib/diy/ch2num.js

直接运行生效,提供 ch2num、num2chs、num2cht、num2sum 函数

例如
<script src=http://www.bathome.net/lib/diy/ch2num.js></script>
<script>
alert(ch2num('中文数字壹佰叁拾贰万肆仟贰佰壹拾叁圆肆角贰分'))
//大写数字转小写
alert(num2chs('阿拉伯数字1324213.42'))
//小写数字转大写
close()
</script>COPY
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

TOP

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

自写库之信息枚举:

list

用于罗列各种信息的自定义的函数
http://www.bathome.net/lib/diy/list.js

直接运行生效,提供 list 函数及其子函数

例如
<script src=http://www.bathome.net/lib/diy/list.js></script>
<script>
var mapobject = {a:123,b:456}
alert(list(mapobject).join('\n'))
//列举对象的元素
var comobject = list.com()
alert('本机已注册的组件数量为:' + comobject.length)
//获取已注册的组件数量
close()
</script>COPY
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

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

自写库之编码转换:

iconv

字符编码转换
http://www.bathome.net/lib/diy/iconv.js

直接运行生效,提供 iconv 函数及其子函数

例如
<script src=http://www.bathome.net/lib/diy/iconv.js></script>
<script>
var utf8string = '鎵瑰鐞嗕箣瀹讹紝浣犲ソ'
var gb2312string = iconv(utf8string,'utf-8','gb2312')
alert(gb2312string)
//调用 iconv 函数转换字符串
iconv.saveText(gb2312string,'文本.txt','gb2312')
//调用 iconv.saveText 将字符串以 gb2312 编码保存到文本
close()
</script>COPY
示例脚本:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

返回列表