Node.js 在经典asp.NET中从wscript.run执行nodejs命令

Node.js 在经典asp.NET中从wscript.run执行nodejs命令,node.js,asp-classic,vbscript,wsh,Node.js,Asp Classic,Vbscript,Wsh,我正在尝试从vbscript/classic asp页面执行nodejs命令。我从LESC(更少的编译器)开始,但也需要使用其他命令 nodejs已经安装,我在全局名称空间中安装了lessc(例如,npm install-g less),我可以(在服务器cmd提示符下)发出lessc,并且它可以工作 在服务器命令提示符下,我可以发出执行LESC的命令,例如: lessc D:\webs\player\Layout\less\app.less>D:\webs\player\Layout\less\

我正在尝试从vbscript/classic asp页面执行nodejs命令。我从LESC(更少的编译器)开始,但也需要使用其他命令

nodejs已经安装,我在全局名称空间中安装了lessc(例如,
npm install-g less
),我可以(在服务器cmd提示符下)发出lessc,并且它可以工作

在服务器命令提示符下,我可以发出执行LESC的命令,例如:

lessc D:\webs\player\Layout\less\app.less>D:\webs\player\Layout\less\app.css

但当我在vbscript中执行它时:

dim path : path = "D:\webs\player\Layout\less\"
dim shell : shell = server.createobject("WScript.Shell")
dim errCode : errCode = shell.Run("lessc " & path & "\app.less > " & path & "\app.css", 0, true)
response.write errCode
然后它什么也不做。替换该命令,使其在LESC之前运行CMD向前迈进了一步:它创建了一个零字节的输出文件(app.css):

所以它看起来好像没有找到
lessc
,即使它是在path变量中定义的<代码>服务器命令提示符处的ECHO%PATH%显示LESC所在的路径。因此,我尝试执行lessc的完整路径,即使这样也似乎不起作用(没有错误,没有输出):

。。现在很沮丧。。我尝试将
lessc
本身的输出管道化到一个文件中,它输出一个零字节的文件。所以它在做一些事情,只是不执行lessc

call shell.Run("CMD /C C:\Users\Administrator\AppData\Roaming\npm\lessc > c:\temp\lessc.txt", 0, true)

如何让路径变量在shell.run中工作?在vbscript/classic asp中,是否有更好的方法在服务器端执行nodejs命令?这将是我在使用IIS时总是忘记的那些愚蠢的小事之一,不是吗?

好吧,经过一天的胡闹,我遇到了一个github项目,它有一个压缩的节点和较少的组合作为一个独立的包,这很容易使用Shell.Run执行,而且您根本不需要处理环境变量

所以,我回答了自己的问题

dim errCode : errCode = shell.Run("CMD /C C:\Users\Administrator\AppData\Roaming\npm\lessc " & path & "\app.less > " & path & "\app.css", 0, true)
call shell.Run("CMD /C C:\Users\Administrator\AppData\Roaming\npm\lessc > c:\temp\lessc.txt", 0, true)