从批处理文件访问JavaScript方法
Accessing JavaScript method from a batch file
我在一个批处理文件中经历了多个类似Embedded js的post,这表明了将批处理文件和javascript相结合的可能性。我的问题是,是否可以在.bat文件中使用.js文件的方法?例如,用下面的一些方法定义一个js文件-
test.js
add:function(a, b){ return a+b;}
测试.bat
add(1, 2); ::Or something like add 1 2
输出
C:'>test
3
有几种方法可以做到这一点。下面的方法非常简单:
test.js
function add(a, b){ return a+b;}
function sub(a, b){ return a-b;}
WScript.Echo(eval(WScript.Arguments(0)));
测试.bat
@echo off
set eval=cscript //nologo test.js
%eval% add(1,2)
%eval% sub(1,2)
输出
C:'> test
3
-1
在这种情况下,%eval%
之后的表达式既不能包含空格,也不能包含特殊字符。要做到这一点,只需将表达式括在引号中:
%eval% "add(1,2) * 4 + sub(1,2)"
类似的东西(这很冗长,但这是我能想到的)?这将不适用于javascript,但适用于jscript和jscript.net(但要求有点不同的代码)
@if (@X)==(@Y) @end /* JScript comment
@echo off
call :add 1 2
call :subst 5 2
exit /b %errorlevel%
:add [ a , b ]
cscript //E:JScript //nologo "%~f0" add %~1 %~2
exit /b %errorlevel%
:subst [ a , b ]
cscript //E:JScript //nologo "%~f0" subst %~1 %~2
exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */
var ARGS = WScript.Arguments;
function subst(a,b){
WScript.Echo(a - b);
}
function add(a,b){
WScript.Echo(a + b);
}
switch(ARGS.Item(0).toLowerCase()){
case "subst":
subst(ARGS.Item(1),ARGS.Item(2));
break;
case "add":
add(ARGS.Item(1),ARGS.Item(2));
break;
default:
WScript.Echo("wrong function");
WScript.Quit(1);
}
相关文章:
- object.仅冻结对象方法.JavaScript
- 快速方法 Javascript/Jquery/etc 检索表单中包含的所有 aspnet:textbox (input)
- 查看整个画布是否被涂成一种颜色的方法.Javascript + processing.js
- 从方法 JavaScript 访问对象变量
- pop()方法javascript没有给出完整的输出
- 如何格式化setInterval方法JavaScript的运行时间
- 正则表达式/替换方法Javascript
- 将vars传递给其他方法javascript
- 寻找一种简化if/else语句的方法.javascript
- focus()或select()方法javascript,在Chrome中性能缓慢
- 未捕获的类型错误:对象没有方法..Javascript
- 对象方法javascript中的方法/函数
- 构造函数中的私有方法(Javascript,坏主意?)
- 查看数组是否有数组的最简单方法?Javascript
- 扁平化数组元素(不是整个数组)的有效方法JavaScript
- 最常用的生成PDF报告的方法(JavaScript,node.js)
- 创建多维数组与地图方法:javascript
- 对象方法Javascript HTML DOM中的多个事件监听器
- 卡住了.adddeventlistener不能在属性内处理我的方法.Javascript
- 任何获取文档选择的x、y、w、h的方法(JavaScript)