2016-08-29 4 views
2

私はVivado GUI Tclコンソールでtclスクリプトを実行しようとしています。スクリプトはどのタイプの実行(synth、impl、bitgenなど)構成する。 私は、-tclargsを使って、スクリプトをVivadoのコマンドラインモードで実行すると引数を渡すことができることを知っています。何かのように:Vivado GUIのtclスクリプトに引数を渡す方法tcl console

vivado -mode batch -source <filename> -tclargs <arguments> 

私はVivado guiモードで同じことを試してみてエラーが発生しました。 'source -help'実行

ERROR: [Common 17-170] Unknown option '-tclargs', please type 'source -help' for usage info. 

Syntax: 
source [-encoding <arg>] [-notrace] [-quiet] [-verbose] <file> 

Usage: 
    Name   Description 
    ------------------------ 
    [-encoding] specify the encoding of the data stored in filename 
    [-notrace] disable tracing of sourced commands 
    [-quiet]  Ignore command errors 
    [-verbose] Suspend message limits during command execution 
    <file>  script to source 

私はそうすることができないという感じを取得しています-helpを見ることによって。また、私はそうするための文書を見つけることができません。私はこれを達成する方法があるかどうかを知りたい。

+2

おそらく、sourceを呼び出す前にargvとargcを設定することは可能でしょうか? @haggai_e、 –

+0

、ありがとう。それは今働く。 –

答えて

2

sourceコマンドは引数を設定しません。それはCの#includeのようなものです。そのため、あなたがsourceであるスクリプトが、argvargcが設定されていると想定すると、スクリプトがプログラムとして実行されたかのように設定されます。sourceより前にはsetとするだけです。彼らはTclの限り普通の変数です;彼らはちょうど既定で設定されるように起こります。

argv0もスクリプトに設定する必要があります。一部のプログラムは、非対話モードで実行しているときにそれを期待しています。

set argv [list "a b c" foo bar 123] 
set argc [llength $argv] 
set argv0 theScript.tcl 
source $argv0 
関連する問題