繁体   English   中英

在Windows上的TCL中创建文件

[英]Creating a file in TCL on windows

似乎这段代码应该工作...

set data "sample text"
set file_name "C:\Test2.txt"
set file_obj [open $file_name w]
puts -nonewline $file_obj $data
close $file_obj

但是在我的两个系统上都没有创建文件。

set file_name "C:\Test2.txt"
file exists $file_name

当文件不存在时返回为1(true)。 令人困惑。

该文件可能不是在C:的根目录中而是在当前目录中创建的。 您会看到,Tcl解释器对待双引号字符串中的反斜杠的方式是将其和以下字符转换为特殊字符(例如\\t ,该字符转换为制表符,而\\n变为换行符) )。 当解释器查看字符串"C:\\Test2.txt"它会找到\\T组合,这不是有效的转义代码,因此它将字符串评估为"C:Test2.txt" ,这是合法的Windows中的文件名,即C:当前目录中的Test2.txt

解决方案是在文件名中使用Unix样式的常规斜杠,例如"C:/Test2.txt"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM