2013-01-31 50 views
3

當您通過CScript.exe中執行與.VBS,.JS或.WSF擴展文件,他們正確地執行:如何知道CScript.exe的// E:引擎選項的有效腳本引擎名稱?

CScript vbsProg.vbs 
CScript jsProg.js 
CScript wshScript.wsf 

但是,我們可以使用// E:引擎選項來運行VBS或JScript文件不同的擴展名:

CScript //E:VBS vbsProg.txt 
CScript //E:JScript jsProg.txt 

有沒有辦法做同樣的事情用一個WSF文件?

CScript //E:WhatGoesHere wshScript.txt 

有沒有腳本引擎名稱被記錄的地方?有什麼方法可以知道所有已安裝引擎的名稱嗎?

謝謝!

安東尼

+0

我有一個類似的問題。我試圖從另一個WSF調用WSF,但它一直失敗。你有沒有運氣? – meffordm

+0

@meffordm:看到[新答案](http://stackoverflow.com/questions/14629123/how-to-know-valid-script-engine-names-for-cscript-exes-eengine-option/23328598#23328598 )... – Aacini

回答

1

雖然沒有辦法知道CScript //E:命令安裝引擎的名稱,有一個很簡單的方法以執行任何擴展名爲.wsf的文件:

CScript wshScript.txt?.wsf 

this post的更多詳細信息。

3

[編輯]閱讀Ekkehard霍納評論我決定罷工了我的第一句話約// E開關後。

世界社會論壇本身就是一個可容納不同語言的腳本像一個批處理作業文件:

<package> 
    <job> 
    <script language="VBScript"> 
     WScript.Echo "Echo from VBScript" 
    </script> 
    <script language="JScript"> 
     WScript.Echo("Echo from JScript"); 
    </script> 
    <script language="XYZ"> 
     //where XYZ s`d be a valid name of installed language 
    </script> 
    </job> 
</package> 

而且//E並不適用於WSF文件在所有。 CScript將承認他們只由它們的擴展,意味着通過在CScript運行WSF的唯一途徑是:

CScript ScriptName.WSF 
+0

「你不能使用引擎開關// E爲VBS或JScript以外的東西」是錯誤的。給定一個安裝的ActiveState Perl // E:PerlScript工作正常(我可以證明)。所有安裝的ActiveScript語言名稱(可能)都是// E的有效參數。但是,您對.WSF的結論可能是正確的。 –

+0

「所有已安裝的ActiveScript語言名稱(可能)都是// E」的有效參數 - 這對我來說是新的,說什麼,可能您是可靠的。 –

+0

+1有待改善,儘管我對結論「沒有// E:開關的WSF值」感到非常不滿。 –