`gitk`程序使用`where`命令找到但无法执行?

时间:2015-08-09 17:02:56

标签: windows git path gitk

我试图在Windows上运行gitk,但控制台告诉我:

'gitk' is not recognized as an internal or external command,
operable program or batch file.

但是,我可以做到

> where gitk
C:\Program Files (x86)\Git\bin\gitk

怎么来的?

1 个答案:

答案 0 :(得分:1)

更新:窃取OP的评论:

  

感谢(冗长)解释,对我来说最简单的解决方法是从旧的msysGit(1.9.5)版本转移到更新的" Git for Windows"具有适当的gitk Windows包装器的构建。

与大多数git命令不同,

gitk是一个调用Tcl的shell脚本。

如果你检查gitk可执行文件本身,它的前几行是:

#!/bin/sh
# Tcl ignores the next line -*- tcl -*- \
exec wish "$0" -- "$@"

(至少那是我在Linux系统上看起来的样子; gitk的Windows安装程序可能会改变它。)

在类Unix系统上,第一行(称为"shebang")告诉系统调用/bin/sh来执行文件而不是直接执行它。

第三行执行wish命令,该命令将脚本作为Tcl脚本执行。

如果您的Windows系统上安装了Tcl,您应该可以使用以下内容运行gitk作为Tcl脚本:

C:\> tclsh "C:\Program Files (x86)\Git\bin\gitk"

(免责声明:我没试过这个。)

您也可以将命令的名称从gitk更改为gitk.tcl,并在Windows中设置文件关联,以便正确调用它。 (我有点惊讶Windows git安装程序没有为你做这件事。)

有关在Windows上运行Tcl脚本的更多信息,请访问here

this question讨论了从上下文菜单而不是命令行在Windows上调用gitk