我需要使用另一个tcl脚本中的选项运行tcl脚本

我需要使用另一个tcl脚本中的选项运行tcl脚本,tcl,Tcl,我有一个tcl脚本drakon_gen.tcl。我正在从另一个脚本run.tcl运行它,如下所示: source "d:\\del 3\\drakon_editor1.22\\drakon_gen.tcl" 当我运行run.tcl时,我有以下输出: This utility generates code from a .drn file. Usage: tclsh8.5 drakon_gen.tcl <options> Options: -in <filename>

我有一个tcl脚本drakon_gen.tcl。我正在从另一个脚本run.tcl运行它,如下所示:

source "d:\\del 3\\drakon_editor1.22\\drakon_gen.tcl"
当我运行run.tcl时,我有以下输出:

This utility generates code from a .drn file.
Usage: tclsh8.5 drakon_gen.tcl <options>
Options:
-in <filename>          The input filename.
-out <dir>              The output directory. Optional.

现在我需要添加输出中的to run.tcl选项。我尝试了很多方法,但都有错误。添加选项的正确方法是什么?

当您将脚本源代码导入tcl解释器时,您正在当前解释器的上下文中评估脚本文件。如果将其编写为独立程序,则可能会遇到全局命名空间中变量和过程冲突的问题。避免这种情况的一种方法是调查从属解释器的使用,请参阅为子脚本提供单独环境的命令

在您的特定示例中,似乎只需要提供一些命令行参数。这些参数通常由包含所有命令行参数列表的变量提供。如果在寻源脚本之前定义此列表,则可以向其提供所需的命令行。例如:

set original_argv $argv
set argv [list "--optionname" "value"]
source $additional_script_filename
set argv $original_argv

将脚本源代码导入tcl解释器时,您正在当前解释器的上下文中评估脚本文件。如果将其编写为独立程序,则可能会遇到全局命名空间中变量和过程冲突的问题。避免这种情况的一种方法是调查从属解释器的使用,请参阅为子脚本提供单独环境的命令

在您的特定示例中,似乎只需要提供一些命令行参数。这些参数通常由包含所有命令行参数列表的变量提供。如果在寻源脚本之前定义此列表,则可以向其提供所需的命令行。例如:

set original_argv $argv
set argv [list "--optionname" "value"]
source $additional_script_filename
set argv $original_argv

您可能还需要设置argc和argv0全局变量,尽管它们很少使用。您可能还需要设置argc和argv0全局变量,尽管它们很少使用。