2016-07-27 3 views
0

選択したディレクトリのすべてのファイル(拡張子.tclを持つ)を1つずつtclの特定の変数に渡す方法はありますか?私はあなたがやりたいと思う何をすべきか選択されたディレクトリの各ファイルを渡す

+0

)(その文字が特殊な場合でも、*?[]\のいずれかを文字Xと一致しますか?あなたはリストなどについて話していますか? –

答えて

3

一つの方法は、globコマンドは、「いずれかを意味する。この場合*.tclに(最後の引数でのパターンに一致するファイル名のリストを返します

foreach file [glob -directory $dir *.tcl] { 
    # do something with the filename $file 
} 

です.tcl "で終わる名前)。 -directoryオプションは、ファイルを探すディレクトリを指定します。

パターンに一致するファイルがない場合、コマンドはエラーを発生させます。これを避け、単純に空のリストを取得するには、オプション-nocomplainを使用します。

foreachコマンドは、可変仕様、リスト(この場合はファイル名のリスト)、およびスクリプトをとります。スクリプトは、項目に変数が設定されているすべての項目(または場合によっては項目のバッチ)に対して1回評価されます。

ドキュメント:Tclの文字列マッチングの foreachglobFile name conventions supported by Tcl commands

構文:

  • *がゼロ以上の文字のシーケンス
  • ?は、単一の文字
  • に一致する一致しました
  • [chars]は、の文字のうちの1文字に一致します。(^はではありません。は無効です。範囲は-Zとして指定することができます)
  • \xあなたは「一つ一つ」で何を意味するのです
関連する問題