繁体   English   中英

JScript / Windows Script Host 中的 UNIX `exec` 等价物

[英]Equivalent of UNIX `exec` in JScript / Windows Script Host

我有一个 .js 文件,它是由 Node.js 在命令行上执行的。 我已经使用npm设置了所有内容,以便将文件作为“bin”放入用户的路径中。 我的问题是,因为文件以 .js 结尾,所以从命令行运行它会将它传送到基于 JScript 的 Windows 脚本主机,而不是节点,正如预期的那样。

我正在尝试编写一个 JScript 包装器,位于myprogram.js ,由 Windows Script Host 执行,然后发送到 Node.js。 不幸的是,WScript 的Exec命令的行为似乎不像 UNIX exec 命令:

var shell = new ActiveXObject("WScript.Shell");
var proc = shell.exec("node .\\Library\\executable.js");

while (proc.Status === 0) {
     WScript.Sleep(100);
}

WScript.Echo(proc.Status);

这会缓冲程序的输出,并通过某种 JScript WshScriptExec对象公开它。

我需要一个脚本、一个功能或其他方式,将整个终端交给我正在启动的命令行脚本。 最有用的是,我想用我正在执行的命令的进程(即 UNIX- exec -y 行为)替换正在执行的 JScript 进程。我的问题?

完全避免使用 .js 后缀,以便在所有平台上获得相同的简单命令名称,例如executable

通过如下在 package.json 中设置 bin 来实现,npm 将对其进行排序:

{ "bin" : { "executable" : "./executable.js" } }

来源和更多详细信息: https : //docs.npmjs.com/files/package.json#bin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM