Board logo

标题: [原创] [v0.4]VBScript Shell——支持交互运行VBS的外壳 [打印本页]

作者: 老刘1号    时间: 2020-12-28 11:36     标题: [v0.4]VBScript Shell——支持交互运行VBS的外壳


由@Tech_Noob、@小肥羊、@老刘开发的支持交互式运行VBScript的系统外壳。

目前已经支持的特性:
1、独立GUI界面(不依赖系统CMD)。
2、VBScript语法高亮。
3、VBS、JS、COM函数库支持。

等待支持的特性:
1、自动补全。
2、历史命令(按↑获得)。
3、其它语言支持(JS、Scheme、Common-Lisp、VB .NET、C#等)。
4、代码编辑优化(行号显示、仿VI等)。
5、兼容性优化(WSH对象模拟)。
6、包管理支持。

用法:
1、双击解压目录中的HTA文件启动。
2、函数/函数库放置在Libraries内相应文件夹中,打开VBSH时会自动加载。
3、Preference目录内的配置文件可修改语法高亮方案,直接修改HTA可改变字体、背景色等。
4、在VBSH界面中,直接按回车进入多行代码输入模式,按下Alt+Enter执行多行代码。单行代码直接输入、回车即可执行。

参与开发:https://jq.qq.com/?_wv=1027&k=bhVG8I71
下载地址:https://github.com/OldLiu001/Vis ... /archive/master.zip
项目地址:https://github.com/OldLiu001/Visual_Basic_Script_Shell

作者: jyswjjgdwtdtj    时间: 2023-2-9 20:57

问题来了 hta文件呢?
作者: 老刘1号    时间: 2023-2-12 18:50

回复 2# jyswjjgdwtdtj


    确实欸,我才发现没有了,重新push了一个
作者: jyswjjgdwtdtj    时间: 2023-2-14 20:50

回复 3# 老刘1号


    好像多行的过程还不支持?
我建议多行过程的检查可以用栈?比如一个for就push一个“for”,一个next就pop一个for?
之前用cscript的控制台做过类似的 我就这么做的😂
作者: jyswjjgdwtdtj    时间: 2023-2-14 20:59

回复 3# 老刘1号


    还有wscript对象似乎缺一个“path”属性?虽然无伤大雅
作者: jyswjjgdwtdtj    时间: 2023-2-14 21:01

还有vbs也是可以操作hta(其实和htmlfile一样,都是ie套壳)的,所以那个textoutput可以用vbs写!
作者: 老刘1号    时间: 2023-2-14 21:36

本帖最后由 老刘1号 于 2023-2-14 21:45 编辑

回复 4# jyswjjgdwtdtj


    目前确实是直接回车进入多行模式,确实可以用栈做个检测,不过细节很多,比如用 : 连接的,[]包裹的关键字,if的那种没有end的情况,
  1. if xxx then 后边直接跟命令
  2. if xxx then : xxx : end if
  3. [if] [end] 这种关键字当变量用的
复制代码
要不不实现,真要实现起来感觉得上antlr那种词法分析器了(
作者: 老刘1号    时间: 2023-2-14 21:37

回复 5# jyswjjgdwtdtj


    那个缺的挺多的,stdin和stdout那些都还没弄
作者: 老刘1号    时间: 2023-2-14 21:39

本帖最后由 老刘1号 于 2023-2-14 21:46 编辑

回复 6# jyswjjgdwtdtj


    确实可以,但是js写比较顺手
顺便,hta那个ie的版本是非常老的ie6,很多特性不支持
htmlfile没研究过,但是ie对象的ie版本是比较高的(8~11,看装了哪个版本)

要不要加入开发?可以fork一份,修改后提交pr就好
作者: jyswjjgdwtdtj    时间: 2023-2-15 19:50

回复 9# 老刘1号


    电脑里还有xmlfile,jpegfie,giffile等等一大堆莫名其妙的xxfile
吐槽一下,htmlfile没有getelementbyclass
一般都是用来执行JavaScript代码的
作者: jyswjjgdwtdtj    时间: 2023-2-15 20:53

嗨 之前写过一个的 支持动态通过栈检查格式 包括错误后支持退回上一步等等 学着py-dng大佬做的 不过我觉得他写的实在太繁琐
作者: 老刘1号    时间: 2023-2-15 21:09

回复 10# jyswjjgdwtdtj


    可以,当然都可以,都是好idea,有啥想法你直接fork一下修改吧,
主要最近我没空整这个(逃
想起某位老兄的话,开源的好处就是你能免费帮人写代码、别人也能免费帮你写代码(x
作者: jyswjjgdwtdtj    时间: 2023-2-16 17:25

本帖最后由 jyswjjgdwtdtj 于 2023-2-16 18:38 编辑

6的6的6的6的
作者: jyswjjgdwtdtj    时间: 2023-2-16 18:40

回复 12# 老刘1号


    最后弱弱问一句,highlight.vbs里的正则:
((?:\x05?[\x03\x05]*R\x05?e\x05?m\x05?\x03+\x05?|'\x05?)[^\r]*)
里,\x05和\x03是什么意思啊,是ascii吗?
但都是几乎已经废弃了的非打印字符啊
作者: 老刘1号    时间: 2023-2-17 21:25

回复 14# jyswjjgdwtdtj
  1. STRING_FLAG = Chr(1)
  2. COMMENT_FLAG = Chr(2)
  3. BLANK_FLAG = Chr(3)
  4. SPECIAL_CHAR_FLAG = Chr(4)
  5. CURSOR_FLAG = Chr(5) '为VBS Shell新增的光标标记
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2