标题: [分享]BAT和JS轻松实现混合编程 [打印本页]
作者: youxi01 时间: 2008-1-12 10:27 标题: [分享]BAT和JS轻松实现混合编程
JS可以利用/* */来实现 多行注释,利用这个特点,我们可以轻松实现JS和bat的混合编程,即:一批处理文件,在作为批处理文件的同时,还可以被脚本引擎WSH识别,演示代码如下:
- @set @this_call_started=1 /*
- @echo off
- echo 前面的 /* 在 JS 中已经被定义为注释,所以
- echo 在运行的时候,下面的代码将不被js解析。
- echo hello,world
- call CScript.EXE "%~dpnx0" //Nologo //e:jscript %*
- goto :end
- 下面这句是告诉 js 说明文字已经结束,开始解析。
- rem */
- //这里写入JS代码;
- pop=WScript.CreateObject("Wscript.Shell")
- pop.popup ("这是一段JS代码",4,"HOHO")
- //JS代码结束。
- /* 又开始JS注释
- ============以下自由书写批处理代码;=======
- :end
- echo 程序运行完成,感觉怎么样?
- pause>nul
- @rem */
复制代码
作者: ieutk 时间: 2008-1-12 14:23
厉害呀,什么时候也来个bat和vbs混合的呀!
作者: HAT 时间: 2010-3-3 15:05
总结了 3 种方法。(只是第一行内容不一样)
1. 缺陷:修改了一个变量的值- @set @a=1/*
- @echo off
- echo Hello World!
- start wscript -e:jscript "%~f0"
- pause
- goto :eof
- */
- WSH.Echo("Hello World!");
复制代码
2. 缺陷:清屏了- echo=1/*>nul&@cls
- @echo off
- echo Hello World!
- start wscript -e:jscript "%~f0"
- pause
- goto :eof
- */
- WSH.Echo("Hello World!");
复制代码
3.- @if (1==1) @end/*
- @echo off
- echo Hello World!
- start wscript -e:jscript "%~f0"
- pause
- goto :eof
- */
- WSH.Echo("Hello World!");
复制代码
转自:http://www.cn-dos.net/forum/viewthread.php?tid=50369
作者: ai20110304 时间: 2020-2-10 12:12
回复 3# HAT
获益匪浅。谢谢
作者: woetu 时间: 2020-7-15 14:54
还有一种- @if (0)==(0) echo off
- cscript -nologo -e:jscript %~s0
- goto :EOF
- @end
-
- // **************************** JavaScript *******************************
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |