Многие (скриптовые) языки имеют R (ead) -E (оценивать) -P (rint) -L (oop) - инструменты и/или строки процесса, заданные в командной строке. Таким образом, с помощью Powershell вы можете сделать:
powershell -command (2+3)*10
50
Perl:
perl -e "print 'hello';"
hello
Для VBScript вы должны свернуть свой собственный; возможно, начиная с here или here (ff).
Очень простое (доказательство концепции) скрипт, который просто имеет дело с кодом из командной строки:
Option Explicit
Dim goWAN : Set goWAN = WScript.Arguments.Named
Dim goWAU : Set goWAU = WScript.Arguments.UnNamed
If goWAN.Count <> 1 Or goWAU.Count <> 1 Or Not (goWAN.Exists("x") Or goWAN.Exists("e")) Then
WScript.Echo "usage: ", WScript.ScriptName, "/x|/e ""code to execute/evaluate"" (use ' for "")"
Else
Dim sCode : sCode = Replace(goWAU(0), "'", """")
If goWAN.Exists("x") Then
Execute sCode
Else
WScript.Echo Eval(sCode)
End If
End If
выход:
cscript 29416456.vbs
usage: 29416456.vbs /x|/e "code to execute/evaluate" (use ' for ")
cscript 29416456.vbs /e "(2+3)*10"
50
cscript 29416456.vbs /x "WScript.Echo 'Now: ' & Now"
Now: 4/3/2015 10:53:49 PM
'Cscript /' возвращает Использование: 'CScript scriptname.extension [вариант ...] [аргументы ...]'. Эзотерический? Прочитайте [Запустите скрипт VBScript/Windows Scripting Host (WSH)] (http://ss64.com/vb/cscript.html). – JosefZ
Нет, это обычная черта современных языков сценариев, например. интерпретатор CPython предоставляет параметр -c «pass script as string». (Для powershell см. Ответ ниже). Это очень полезно для среды, если вы хотите управлять другим интерпретатором, но не можете создавать файлы. –
Очень полезно передать небольшой скрипт без необходимости доступа к файловой системе. Например, интерпретатор Python поддерживает его с помощью '-c'. Это работает: 'python -c" print 3 + 4 "' –