4

当您通过 CScript.exe 执行具有 .VBS、.JS 或 .WSF 扩展名的文件时,它们会正确执行:

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

但是,我们可以使用 //E:engine 选项来运行具有不同扩展名的 VBS 或 JScript 文件:

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

有没有办法用 WSF 文件做同样的事情?

CScript //E:WhatGoesHere wshScript.txt

有没有记录脚本引擎名称的地方?有没有办法知道所有已安装引擎的名称?

谢谢!

安东尼奥

4

2 回答 2

3

[编辑] 在阅读了 Ekkehard Horner 的评论后,我决定删除我关于 //E 开关的第一句话。

WSF 本身是一个批处理作业文件,其中可能包含不同语言的脚本,例如:

<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
于 2013-01-31T16:23:26.910 回答
3

尽管无法知道已安装的CScript //E:命令引擎的名称,但有一种非常简单的方法可以执行具有任何扩展名为 .wsf 的文件:

CScript wshScript.txt?.wsf

这篇文章的更多细节。

于 2014-04-27T20:29:37.397 回答