File 使用tcl脚本打开txt文件(使txt文件在屏幕上弹出)

File 使用tcl脚本打开txt文件(使txt文件在屏幕上弹出),file,tcl,File,Tcl,如何真正“打开”txt文件(已经知道文件路径),我的意思是,通过编写tcl脚本在屏幕上弹出?谢谢大家! 我假设您所说的“打开”是指使用应用程序/程序打开。在Windows上: exec notepad.exe /path/to/file.txt 在Mac上: exec open /path/to/file.txt ;# Open using default application 或: 调用系统“首选”文本编辑器相对容易,但移植性不强。假设$theFilename包含

如何真正“打开”txt文件(已经知道文件路径),我的意思是,通过编写tcl脚本在屏幕上弹出?谢谢大家!

我假设您所说的“打开”是指使用应用程序/程序打开。在Windows上:

exec notepad.exe /path/to/file.txt
在Mac上:

exec open /path/to/file.txt             ;# Open using default application
或:


调用系统“首选”文本编辑器相对容易,但移植性不强。假设
$theFilename
包含Tcl所理解的文件名,并且该文件不是Tcl某个虚拟文件系统上的文件:

雨衣 Unix/Linux 或者,如果您在终端中,并且喜欢经典方法:

exec $::env(EDITOR) [file normalize $theFilename] <@stdin >@stdout 2>@stderr

是的,这个空参数是必需的(特别是当目录或文件中有空格时)<代码>开始的语法很糟糕。

所说的打开,是指使用应用程序打开它吗?您在什么平台上(Win、Mac、Linux等)以及要使用什么应用程序?对于windows案例,“exec{*}[auto_execok start]$filename”是一个更好的选择,因为start将启动定义的关联程序,该程序可能不是记事本。在Unix上,xdg open通常可以达到相同的效果。很好!我要试一下。谢谢你的提示。
exec open [file normalize $theFilename]
exec xdg-open [file normalize $theFilename]
exec $::env(EDITOR) [file normalize $theFilename] <@stdin >@stdout 2>@stderr
exec {*}[auto_execok start] "" [file nativename [file normalize $theFilename]]