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

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

本帖最后由 CrLf 于 2017-3-6 10:52 编辑

_wscript.exe 支持 .bat 的 wscriptJSConsole v2.0.1 JScript控制台
再到 js/bat脚本混编新方案bat、vbs、js 原生混编批处理之家 js 在线脚本库
我一直在寻觅批处理的终极增强方案
但可惜的是鱼与熊掌不可兼得,要么操作繁琐,要么功能不够强大,有时候想“就这样了,反正只是批处理”。

一周前突然有点什么想法——其实早该想到的。
于是折腾出了这个能以最简洁的命令行调用批处理之家 js 在线脚本库的方案,集前作之所长,精巧而强大。
界面修改自在线第三方命令行工具下载

举几个实例感受一下:
  1. mshta http://bathome.net/s/hta/index.html type('UTF8编码的文件.txt')|more
  2. ::调用 type 函数自动识别文件编码,可识别 ANSI、UTF8、UTF16(即通常说的Unicode)
  3. mshta http://bathome.net/s/hta/index.html Tools.get(\"gawk\")
  4. ::调用基于 Batch-CN 第三方仓库的 Tools 库实现自动判断并下载 gawk 命令(假如 %Path% 中找不到此命令的话)
  5. ::为了提供更佳的命令行兼容性,此页面会抛弃命令行参数中未转义的 ",此例中的 \" 即代表要保留的 "
  6. ::此处的 \"gawk\" 也可写为 ""gawk"" 或 'gawk'
  7. mshta "http://bathome.net/s/hta/index.html?group=math" (new XDate()).toString(\"yyyy年MM月dd日\")
  8. ::加载 math 列表中的库,并使用 XDate 库的 toString 方法格式化输出当前日期
  9. echo msgbox "批处理之家" | mshta "http://bathome.net/s/hta/index.html?group=vbs&echo=false" VBScript(WSH.StdIn.ReadAll())
  10. ::加载 vbs 列表中的库,执行来自管道的 VBS 命令,并且不显示返回值
复制代码
当然,你也可以不调用任何函数,只执行默认库列表所能完成的命令:
  1. for /f %%a in ('mshta http://bathome.net/s/hta/index.html 12.5*3') do echo 12.5*3=%%a
复制代码
查看帮助可用 help 参数:
  1. mshta http://bathome.net/s/hta/index.html?help
复制代码
启用调试模式可用 debug 参数,在窗口中按 F12 可呼出 FireBug 控制台:
  1. mshta http://bathome.net/s/hta/index.html?debug
复制代码
如有出现运行异常的情况,可能是缓存所致,可尝试以下几种方法:
  1. 1、在 URL 后添加随机数暂时避开缓存
  2.    例如: mshta http://bathome.net/s/hta/index.html?%random%
  3.    此方法仅刷新 html 页面的缓存
  4. 2、在 IE 中按 Alt 键,工具>删除浏览历史记录,勾选“临时 Internet 文件和网站文件”,点击删除
  5.    此方法可刷新所有缓存,推荐使用,但会同时清除 IE 浏览器下其他网站的缓存
  6. 3、有经验的坛友,可以在 IE 缓存文件夹中有选择地删除缓存文件
  7.    在 IE 中按 Alt 键,工具>Internet 选项>常规>设置>Internet 临时文件>查看文件
  8.    也可以通过 mshta http://bathome.net/s/hta/index.html newcom('Shell.Application').ShellExecute(getCacheFolderPath()) 打开
复制代码
考虑到 win10 下的兼容性,建议用完整地址调用脚本 mshta http://bathome.net/s/hta/index.html "WSH.Echo('执行你的脚本')" | findstr .
5

评分人数

firebug原链接似乎失效了

TOP

本帖最后由 yu2n 于 2017-3-26 00:30 编辑

方便好用的功能,点赞!
`
举个例子:
如果要在你的互联网小程序(批处理)中加入“解压带密码的 zip 文件”功能,你可以这样做:
`
1. 创建临时目录,切换工作目录到临时目录
2. 下载 unzip.exe 到临时目录
3. 使用 unzip.exe 解压带密码的 zip 文件
`
这仅仅需要以下几行代码:
  1. @echo off
  2. :: 1. 创建临时目录,切换工作目录到临时目录
  3. md %temp%\host 2>nul & cd /d %temp%\host
  4. :: 2. 下载 unzip.exe 到临时目录
  5. mshta http://bathome.net/s/hta/index.html?echo=false "Tools.get('unzip')"
  6. :: 3. 使用 unzip.exe 解压带密码的 zip 文件
  7. unzip -o -P laod.org "windows用批处理.zip"
复制代码
`
更多的第三方命令行小程序在等着你~
`
在线第三方命令行工具  http://www.bathome.net/s/tool/index.html
`
`
1

评分人数

『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

本帖最后由 CrLf 于 2016-9-26 00:46 编辑

考虑到 win10 下的兼容性,建议用完整地址调用脚本 mshta http://bathome.net/s/hta/index.html "WSH.Echo('执行你的脚本')" | findstr .

TOP

help 函数配合 TLI 控件还可查看 COM 组件的方法和属性
不过你得在 32 位的 mshta 下才能调用 32 位的 TLI
对于 64 位组件的方法和属性,各位有什么更好的查阅方法吗?最好能通过原生组件来实现

TOP

Bug 已修复,刷新缓存即可见效,方法见顶楼末尾部分

TOP

http://bathome.net/s/hta/index.html
可简写为以下任意一者
http://bathome.net/s/hta/index
http://bathome.net/s/hta/
http://bathome.net/s/hta

但最后一个写法将导致读取不了 ? 及后续开关
域名则可以是 bathome 的任意一个域名
要注意的是,只要 URL 有任何变动,都将对 index.html 使用不同的缓存

TOP

本帖最后由 CrLf 于 2015-12-1 20:58 编辑

回复 8# pcl_test


回复 8# pcl_test

   
    默认加载的 default 列表中已经包含 hide 库,只是 debug 和 help 开关会暂时忽略 hide 罢了,因为此时就是需要查看界面的
    有点困难,我有尝试过解析源码获取声明的方法和属性,目前可以做到解析源码中最外层的部分,但对更复杂机制产生的内容束手无策
    我想最好的办法是笨办法,在 bathomeLibs.json 中添加每个库的方法和属性简略信息,但考虑到现在已有 65 个库…即使自写库也有 19 个之多,实在没这个精力一一写出
    事实上,bathomeLibs 中还有太多我希望能实现但没精力一一实现的库,比如注册表读写、基于 WIA 的图片格式转换还有完善的 help 机制,希望有兴趣的人能够加入,前提是和自写库格式统一、代码无害/封装合理/兼容性好/相对独立
    目前要查看有哪些方法没有提供针对库的文档,但可以列举所有方法,或查看某一个函数的注释,目前的办法是:
  1. list(this)
  2. ::查看当前所有可用的所有外围函数和变量
  3. list($Host)
  4. ::查看 $Host 对象中当前所有可用的所有外围函数和变量
  5. help(this)
  6. ::查看当前 this 所有外层函数和变量和 window 对象的所有方法和属性
  7. help(this,true)
  8. ::在前一条例子的基础上额外显示对应的类型
  9. help(help)
  10. ::查看 help 函数的入口参数
  11. help(help,true,true)
  12. ::查看 help 函数的入口参数和干净的帮助信息,所有自写库均支持此用法
复制代码
执行 help(help,true,true) 将返回以下格式:
  1. <Function> function (objArg,bShowType,bShowHelp){
  2.         //列举指定对象的方法和属性,可用于 com 组件
  3.         //依赖组件:TLI.TLIApplication
  4.         /*
  5.                 objArg  要处理的对象
  6.                 [showType]  是否显示属性
  7.                 [showHelp]  是否显示帮助信息或具体内容
  8.                 { return Array }
  9.                 例:
  10.                 help([])
  11.                 返回数组的自定义方法和属性
  12.                 help([],true,true)
  13.                 返回数组的自定义方法和属性,并注明类型和详细帮助信息
  14.         */
  15.         //部分代码修改自 http://demon.tw/programming/tli-tliapplication.html
  16.     }
复制代码
list 和 help 的用法不止于此,详见帮助

TOP

本帖最后由 回家路上 于 2015-12-1 13:30 编辑

希望脚本库能由此引来一度春天。

确实,要引入这个的话,感觉帮助文档使用说明就得很清楚了。----特别是转载库
虽然是开源的,但是毕竟很多人不会JS。能方便的查看说明文档最好。而且是狠多方法都有很详细的注释和用例,但是怎么方便查看?
想想工作量很大,恨我不通JS啊。

感谢奉献。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

查看帮助可用 help 参数:
mshta http://bathome.net/s/hta/?help

引用时/index.html都可省略吧?

默认加载hide库可好?
比如mshta http://bathome.net/s/hta '批处理之家',要是默认加载hide库就清爽些了

Libs库可列举库列表,但缺少列举某个库都有哪些方法的功能,要查看时还需按链接查看源码,
所以要是有个方法能列举某个库的所有方法和示例那就方便多了

TOP

回复 6# 依山居


get 会自动判断是否需要下载,改用 down 就好了
Tools.down(\"gawk\")

Tools.down('gawk')
Tools.down(""gawk"")
不过最新的 Tools.js 为了适应新的架构,作了很多兼容性的改进,其中有一处修改导致目前暂时无法下载文件,修复后的文件已提交给 Batcher,等站长更新后就可以正常使用 Tools.js 了

TOP

回复 5# CrLf


    Tools.get(\"gawk\") 下载到当前目录怎么改?
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

回复 4# 依山居


    下载虾米?

TOP

- -我是希望默认下到当前目录.
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

欢迎反馈Bug

TOP

返回列表