1

我有一个 txt 文件中的文件列表,我需要在编辑模式下将它们签出,并进行一些更改(有 word 文档),然后通过 WinCVS 将它们签入。

我知道我可以在 wincvs shell 中编写 tcl 脚本或宏或 python 脚本,但我对它们有一些问题。

我已经安装了 TCL 8.5 并在 Admin>Preferences 中选择了 tcl DLL,tcl 现在可用,但是每当我键入并执行 tcl 脚本时,它都会显示

找不到名为“stdout”的频道

您对此错误有任何想法吗?

另外,我看不到管理宏,它说 Shell 不可用。我已经安装了最新版本的 python 并在首选项中选择了相关的 dll。

谁能给我一个提示,让我通过 wincvs 检查文件列表?

提前谢谢了,

问候

4

1 回答 1

1

问题是 Tcl 试图将标准文件描述符构建到默认可用的通道(即stdinstdout)中,stderr但是当默认情况下不打开它们时会出错。在 Windows 上运行断开连接时就是这种情况(这是该平台上的 GUI 应用程序内部发生的情况)。当您使用完整的 Tcl shell(例如wish )运行时,这是可以解决的,但您是嵌入的,因此无法正常工作;修复问题的代码没有运行,因为它是 shell 启动的一部分,而不是库初始化的一部分(毕竟,在没有应用程序或用户询问的情况下,替换文件描述符之类的进程全局资源对于任何库来说都有点不友好到!)

最简单的解决方法是不写入stdout- 请注意,它是puts命令的默认目标,因此您必须小心 - 并且注意不要写入stderr任何一个,因为这可能受到相同的限制(这意味着您已经必须小心如何捕获错误,尤其是在测试脚本时)。

于 2011-03-14T09:08:22.803 回答