簡體   English   中英

在經典的asp中從wscript.run執行nodejs命令

[英]execute nodejs command from wscript.run in classic asp

我正在嘗試從vbscript / classic asp頁面執行nodejs命令。 我從lessc(較少的編譯器)開始,但也需要使用其他命令。

我安裝了nodejs,並在全局命名空間中安裝了lessc(例如npm install -g less )我可以(在服務器cmd提示符下)發出lessc並且它可以工作。

在服務器命令提示符下,我可以發出執行lessc的命令,例如:

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

然后它什么也沒做。 替換命令使其在lessc之前運行CMD向前邁出一步:它創建一個零字節輸出文件(app.css):

dim errCode : errCode = shell.Run("CMD /C lessc " & path & "\app.less > " & path & "\app.css", 0, true)

所以看起來它沒有找到lessc ,即使它是在路徑變量中定義的; servers命令提示符下的ECHO %PATH%顯示lessc所在的路徑。 所以我嘗試執行lessc的完整路徑,即使這似乎不起作用(沒有錯誤,沒有輸出):

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

..現在很沮喪..我嘗試將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就可以很容易地執行,你不必搗亂環境變量一點都不

https://github.com/duncansmart/less.js-windows

所以,回答了我自己的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM