ОписаниеКак запустить несколько сценариев TCL в одном окне tclsh?
- Я работаю с VBScript
- От VBScript Я называю свой первый сценарий TCL "name1"
- После того как сценарий "name1" закончена, я продолжаю работать с VBScript
- После нескольких функций VBScript я вызываю свой второй скрипт TCL «name2», и этот скрипт является дочерним процессом скрипта «name1». Сценарий «name2» должны использовать все переменные из сценария «name1»
Текущий результат
Мои сценарии «name1» и «name2» выполняются в разных tclsh окнах В результате , то «name2» не знаком с переменными «имя1»
Ожидаемый результат
«name1» и «name2» выполнены в том же tclsh Windo ж
Комментарий
Я пытался использовать эти команды, но я не знаю его синтаксис в VBScript
Tcl_Create tclHandler, TCL_Eval Статус, tclHandler,
Было бы неплохо иметь пример использования этих команд в VBScript или любых других
С благодарностью
VBScript:
#$language = "VBScript"
#$interface = "1.0"
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
crt.Screen.Synchronous = True
Sub Main
dim shell
set shell=createobject("wscript.shell")
shell.run "tclsh e:\RunTCL\name1.tcl"
crt.Sleep 10000 ' or any VBScript commands
shell.run "tclsh e:\RunTCL\name2.tcl"
End Sub
name1.tcl
пакет REQ SpirentTestCenter
набор hProject [STC :: создать проект]
набор hTxPort [STC :: create port -under $ hProject -location //192.168.0.243/10/17 -useDefaultHost False]
name2.tcl
набор hRxPort [STC :: создать порт -под $ hProject -Расположение //192.168.0.243/10/25 -useDefaultHost ложных]
Новый код с tcl84.dll и его команды "TCL_Create tclHandler":
#$language = "VBScript"
#$interface = "1.0"
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
crt.Screen.Synchronous = True
Sub Main
Dim wscriptTCL
tclHandler = 0
set wscriptTCL =CreateObject("C:\Tcl\bin\tcl84.dll")
TCL_Create tclHandler, wscriptTCL, 1
puts "Importing STC API"
TCL_Eval Status, tclHandler, "package req SpirentTestCenter"
puts "Creating API objects set"
TCL_Eval Status, tclHandler, "set hProject [stc::create project]"
puts "Connecting to STC ports"
TCL_Eval Status, tclHandler, "set hTxPort [stc::create port -under $hProject -location //10.110.10.243/8/9 -useDefaultHost False]"
src.Sleep 100000
TCL_Eval Status, tclHandler, "set hRxPort [stc::create port -under $hProject -location //10.110.10.243/8/10 -useDefaultHost False]"
в результате, я вижу это сообщение: Error: ActiveX компонент не может создать объект «C: \ Tcl \ Bin \ tcl84.длл»
я могу использовать 2 варианта:
- вызова файла TCL из моего VB скрипта команды
- Вызов TCL из сценария VB через DLL
Но никто не работает
Хорошие новости, он начинает работать, однако я бы предпочел выполнять отдельные файлы TCL по API
shell.run "tclsh"
crt.Sleep 10000
shell.AppActivate "tclsh"
shell.SendKeys("TCL command")
Вы действительно должны опубликовать код, если вы ожидаете, что он будет проанализирован и будет оказана помощь; иначе люди здесь работают слепыми ... – Dave