Как да знам валидните имена на скриптови машини за опцията //E:engine на CScript.exe?

Когато изпълнявате файл с разширения .VBS, .JS или .WSF чрез CScript.exe, те се изпълняват правилно:

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

Има ли място, където имената на скриптовите машини са документирани? Има ли начин да знам имената на всички инсталирани двигатели?

Благодаря!

Антонио


person Aacini    schedule 31.01.2013    source източник
comment
Имам подобен проблем. Опитвам се да извикам WSF от друг WSF, но продължава да се проваля. Имахте ли късмет?   -  person meffordm    schedule 11.02.2013
comment
@meffordm: Вижте нов отговор по-долу...   -  person Aacini    schedule 28.04.2014


Отговори (2)


[РЕДАКТИРАНЕ] След като прочетох коментара на Ekkehard Horner, реших да зачертая първото си изречение за //E switch.

Самият 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 ги разпознава само по тяхното разширение, което означава, че единственият начин да стартирате WSF чрез CScript е:

CScript ScriptName.WSF
person Panayot Karabakalov    schedule 31.01.2013
comment
не можете да използвате превключвател на двигателя //E за нещо друго освен VBS или JScript е грешно. Като се има предвид инсталиран ActiveState Perl //E:PerlScript работи добре (това мога да докажа). Всички инсталирани имена на езици на ActiveScript са (вероятно) валидни параметри за //E. Въпреки това заключението ви относно .WSF може да е правилно. - person Ekkehard.Horner; 31.01.2013
comment
Всички инсталирани имена на езици на ActiveScript са (вероятно) валидни параметри за //E - това е ново за мен, какво да кажа, вероятно сте прави. - person Panayot Karabakalov; 31.01.2013
comment
+1 за подобрение, въпреки че съм много недоволен от заключението, че няма WSF стойност за превключвателя //E:. - person Ekkehard.Horner; 31.01.2013
comment
Има ли някакъв начин да знам имената на всички инсталирани ActiveScript езици? - person Aacini; 31.01.2013
comment
@Ekkehard.Horner - Благодаря, що се отнася до WSF... не е Script Engine, нали? Поне няма такива ключове в Win Registry. - person Panayot Karabakalov; 01.02.2013
comment
@Aacini - Това не е лесен въпрос за мен. Търсене в регистъра на Win... но това е малко ад. Надявам се някой да знае по-добър начин. - person Panayot Karabakalov; 01.02.2013

Въпреки че няма начин да разберете имената на инсталираните двигатели за командата CScript //E:, има много лесен начин да изпълните файл с произволно разширение като .wsf:

CScript wshScript.txt?.wsf

Допълнителни подробности в тази публикация.

person Aacini    schedule 27.04.2014