Batch file 在tcl中,如何在exec命令(windows)中引用变量值作为参数?

Batch file 在tcl中,如何在exec命令(windows)中引用变量值作为参数?,batch-file,tcl,windows-7-x64,Batch File,Tcl,Windows 7 X64,我使用的tcl版本是8.6。在Windows7Prof系统x64上,我发现 exec命令的使用有些奇怪。我是通过阅读之前提出的一些问题得到这个结论的。这就来了 在命令行中将字符串文字用作 exec {*}[auto_execok start] "" [file nativename "c:\\somefile.bat"] 批处理文件按预期执行。然而 set path "c:\\somefile.bat" exec {*}[auto_execok start] "" [file nativena

我使用的tcl版本是8.6。在Windows7Prof系统x64上,我发现 exec命令的使用有些奇怪。我是通过阅读之前提出的一些问题得到这个结论的。这就来了

在命令行中将字符串文字用作

exec {*}[auto_execok start] "" [file nativename "c:\\somefile.bat"]
批处理文件按预期执行。然而

set path "c:\\somefile.bat"
exec {*}[auto_execok start] "" [file nativename $path]
它没有执行,有时Windows声明它可以找到该文件,甚至 如果c:\\是当前工作目录

我不知道怎么继续


顺便说一句,命令控制台包含在哪个包中。我安装的tcl库似乎不包含此命令。

您只需

exec c:/somefile.bat

在脚本中使用斜杠作为目录分隔符,即使在Windows上也可以正常工作


文档:,

console命令在Tk包中。我已经尝试了您的代码&它工作正常。当反斜杠需要转义时,是这种情况吗?尝试设置路径c:\\\somefile.bat。我相信Windows可以在这里使用unix目录分隔符:set path c:/somefile.bat这里的建议对您有帮助吗?在web上搜索此类问题的人会想知道您是否找到了解决方案。而文件nativename在需要时可用于转换斜杠类型。
set path c:/somefile.bat
exec $path