如何在TCL脚本中用正斜杠(/)替换反斜杠(\)

时间:2017-05-17 07:44:08

标签: tcl

我正在写一个TCL脚本,我想用/替换\。

#File directory
set fDir "U:\scripts"
#Replacment of \ with / in the directory path using regular expression
regsub -all {\\} $fDir {/} fDir
tk_messageBox -message $fDir

我得到的输出为:     U:脚本

我希望输出为:     U:/脚本

2 个答案:

答案 0 :(得分:3)

如果使用单个反斜杠,则解释器会尝试从中构造转义序列。当它失败时,它只是去掉反斜杠:

% set fDir "U:\scripts"
U:scripts

要获得一个带反斜杠的字符串,您需要支持字符串或转义反斜杠:

% set fDir {U:\scripts}
U:\scripts
% set fDir U:\\scripts
U:\scripts

然后,您可以使用regsub调用将反斜杠更改为斜杠。如果您觉得没有必要通过正则表达式走很长的路线,可以使用专用命令:

% set fDir [file normalize $fDir]

文档:

file

Summary of Tcl language syntax

答案 1 :(得分:0)

尝试

#File directory
set fDir "U:\\scripts"
#Replacment of \ with / in the directory path using regular expression
regsub -all {\\} $fDir / fDir
puts $fDir

我在网上editor进行了测试,并且有效

结果是

U:/scripts