[英]Running JavaScript from the windows command prompt
我编写了以下JavaScipt代码,它将二进制数转换为十进制数:
(function bin_dec(num) {
var x = num;
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
return result;
})()
我希望能够从命令行运行此代码。 文件名是converter.js ,我在与文件相同的目录中运行命令提示符窗口。 我试图使用01001100
作为函数参数运行此代码。 以下是我的尝试:
$ converter.js 01001100
和
$ converter.js -01001100
和
$ converter.js bin_dec(01001100)
但遗憾的是,这些都不奏效。 有人可以指出我的错误吗? 提前致谢。
1)如果尚未安装Node.js ,请安装它。
2)像这样更改您的converter.js
文件:
function bin_dec(num) {
return parseInt(num, 2);
}
console.log(bin_dec(process.argv[2]));
3)在脚本所在的文件夹中打开一个新的命令提示符并运行
$ node converter.js 01001100
在nodejs中,假设您已经安装了它,因为您尝试从cmd运行javascript,则必须引用process.argv
数组以获取在命令行中传递的参数。
所以你的代码需要看起来像这样:
(function bin_dec(num) {
var x = num;
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
return result;
})(process.argv[2])
注意传递给函数的process.argv[2]
。 这将使第一个参数作为函数内的num
变量可用。
如果您希望在屏幕上显示消息,也可以在某处添加console.log
,因为return语句不会打印消息。
假设您在Windows上运行,您可以这样调用它:
(function bin_dec() {
var x = WScript.arguments(0);
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
return result;
})()
传递给函数的所有参数都存储在WScript.arguments
。
但是,这不会将return
值输出到命令提示符,因此您可能希望使用此.js
文件对其进行测试:
(function ShowAlert() {
var x = WScript.arguments(0);
WScript.ECho(x);
})()
有关详细信息,请参阅以下链接
您必须知道, console
或return
语句等基本功能在CLI中不起作用。
如果您正在使用Windows,那么使用类似于console.log
'WScript.echo'
,并在执行文件时确保您这样做
Cscript.exe yourpath input_params
例如Cscript.exe converter.js 01001100
所以你的代码应该是
(function bin_dec() {
var x = WScript.arguments(0);
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
WScript.echo(result);
})();
应该是运行它
Cscript.exe converter.js 01001100
希望这对你有所帮助! 有关CLI方法的更多信息,请访问以下链接
https://msdn.microsoft.com/en-us/library/2795740w(v=vs.84).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.