首页 > 解决方案 > 为什么文件名没有正确呈现

问题描述

我需要将程序的输出重定向到一个文件,下面是我用来创建输出日志文件名的代码:

set filename "C:\tools\tcl\bin\my.log"
puts "The log file $filename"

但这打印:

 The log file C: ools    cinmy.log

注意我也可以接收文件名作为脚本的参数:

set logfile [lindex $argv 1]

当接收日志文件作为 arg 和常量时,如何解决这两种情况的问题?

标签: tcl

解决方案


Tcl将进行反斜杠替换,并且这些替换只会在双引号中发生。如果您需要文字反斜杠,则必须对其进行转义。当用大括号括起来时,这些替换将不会发生。

因此,您可以将变量定义为

set filename "C:\\tools\\tcl\\bin\\my.log"

或者

set filename {C:\tools\tcl\bin\my.log}

关于命令行参数的东西,不要打扰。Tcl会照顾它。它将按原样从您的终端接收。


推荐阅读