批处理之家's Archiver

老刘1号 发表于 2020-12-28 11:36

[v0.4]VBScript Shell——支持交互运行VBS的外壳

[size=5]
由@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执行多行代码。单行代码直接输入、回车即可执行。

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

jyswjjgdwtdtj 发表于 2023-2-9 20:57

问题来了 hta文件呢?

老刘1号 发表于 2023-2-12 18:50

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264448&ptid=57420]2#[/url] [i]jyswjjgdwtdtj[/i] [/b]


    确实欸,我才发现没有了,重新push了一个

jyswjjgdwtdtj 发表于 2023-2-14 20:50

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264498&ptid=57420]3#[/url] [i]老刘1号[/i] [/b]


    好像多行的过程还不支持?
我建议多行过程的检查可以用栈?比如一个for就push一个“for”,一个next就pop一个for?
之前用cscript的控制台做过类似的 我就这么做的😂

jyswjjgdwtdtj 发表于 2023-2-14 20:59

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264498&ptid=57420]3#[/url] [i]老刘1号[/i] [/b]


    还有wscript对象似乎缺一个“path”属性?虽然无伤大雅;P

jyswjjgdwtdtj 发表于 2023-2-14 21:01

还有vbs也是可以操作hta(其实和htmlfile一样,都是ie套壳)的,所以那个textoutput可以用vbs写!

老刘1号 发表于 2023-2-14 21:36

[i=s] 本帖最后由 老刘1号 于 2023-2-14 21:45 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264561&ptid=57420]4#[/url] [i]jyswjjgdwtdtj[/i] [/b]


    目前确实是直接回车进入多行模式,确实可以用栈做个检测,不过细节很多,比如用 : 连接的,[]包裹的关键字,if的那种没有end的情况,[code]
if xxx then 后边直接跟命令
if xxx then : xxx : end if
[if] [end] 这种关键字当变量用的
[/code]要不不实现,真要实现起来感觉得上antlr那种词法分析器了(

老刘1号 发表于 2023-2-14 21:37

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264563&ptid=57420]5#[/url] [i]jyswjjgdwtdtj[/i] [/b]


    那个缺的挺多的,stdin和stdout那些都还没弄

老刘1号 发表于 2023-2-14 21:39

[i=s] 本帖最后由 老刘1号 于 2023-2-14 21:46 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264564&ptid=57420]6#[/url] [i]jyswjjgdwtdtj[/i] [/b]


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

要不要加入开发?可以fork一份,修改后提交pr就好

jyswjjgdwtdtj 发表于 2023-2-15 19:50

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=264569&ptid=57420]9#[/url] [i]老刘1号[/i] [/b]


    电脑里还有xmlfile,jpegfie,giffile等等一大堆莫名其妙的xxfile
吐槽一下,htmlfile没有getelementbyclass
一般都是用来执行JavaScript代码的

jyswjjgdwtdtj 发表于 2023-2-15 20:53

嗨 之前写过一个的 支持动态通过栈检查格式 包括错误后支持退回上一步等等 学着py-dng大佬做的 不过我觉得他写的实在太繁琐

老刘1号 发表于 2023-2-15 21:09

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264603&ptid=57420]10#[/url] [i]jyswjjgdwtdtj[/i] [/b]


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

jyswjjgdwtdtj 发表于 2023-2-16 17:25

[i=s] 本帖最后由 jyswjjgdwtdtj 于 2023-2-16 18:38 编辑 [/i]

6的6的6的6的

jyswjjgdwtdtj 发表于 2023-2-16 18:40

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264615&ptid=57420]12#[/url] [i]老刘1号[/i] [/b]


    最后弱弱问一句,highlight.vbs里的正则:
((?:\x05?[\x03\x05]*R\x05?e\x05?m\x05?\x03+\x05?|'\x05?)[^\r]*)
里,\x05和\x03是什么意思啊,是ascii吗?
但都是几乎已经废弃了的非打印字符啊

老刘1号 发表于 2023-2-17 21:25

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=264653&ptid=57420]14#[/url] [i]jyswjjgdwtdtj[/i] [/b][code]        STRING_FLAG = Chr(1)
        COMMENT_FLAG = Chr(2)
        BLANK_FLAG = Chr(3)
        SPECIAL_CHAR_FLAG = Chr(4)
        CURSOR_FLAG = Chr(5) '为VBS Shell新增的光标标记[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.