1

txt ファイルにファイルのリストがあり、編集モードでそれらをチェックアウトし、いくつかの変更を加え (Word 文書があります)、WinCVS 経由でそれらをチェックインする必要があります。

wincvs シェルで tcl スクリプトやマクロ、または python スクリプトを記述できることはわかっていますが、いくつか問題があります。

TCL 8.5 をインストールし、[Admin] > [Preferences] で tcl DLL を選択したところ、tcl が使用できるようになりましたが、tcl スクリプトを入力して実行すると、常に次のように表示されます。

「stdout」という名前のチャンネルが見つかりません

このエラーについて何か考えはありますか?

また、管理マクロが表示されず、Shell is not available と表示されます。Pythonの最新バージョンをインストールし、設定で関連するdllを選択しました。

wincvs を介してファイルのリストをチェックするためのヒントを教えてもらえますか?

よろしくお願いします。

よろしく

4

1 に答える 1

1

問題は、Tclが標準のファイル記述子をデフォルトで使用可能なチャネル(つまり、、および)に構築しようとしてstdinいるstdoutことstderrですが、デフォルトで開かれていない場合、これはうまくいきません。これは、切断された状態で実行されているWindowsの場合です(これは、そのプラットフォームのGUIアプリケーション内で発生します)。ウィッシュなどの完全なTclシェルを使用して実行している場合、これは回避されますが、埋め込まれているため、機能しません。物事を修正するコードは、ライブラリの初期化ではなくシェルの起動の一部であるため実行されません(結局のところ、ファイル記述子のようなプロセスグローバルリソースを置き換えることは、アプリやユーザーがそれを要求せずに行うライブラリにとっては少し不親切ですに!)

最も簡単な回避策は、書き込みを行わないことです。これはコマンドstdoutのデフォルトの宛先であるputsため、注意が必要です。また、おそらく同じ制限の下にあるため、どちらにも書き込まないように注意しstderrてください(つまり、特にスクリプトのテスト中は、エラーをトラップする方法に注意する必要があります)。

于 2011-03-14T09:08:22.803 に答える