在我们的一台生产服务器2008盒子中,如果不提供完整的文件名,包括'.exe'扩展名,我就无法从CMD提示符运行可执行文件。 例如,当运行“java”产生通常的“不被识别为内部或外部命令”的消息时,我假设我已经将path和/或java_homevariables作为参数。 但是,即使导航到%java_home%\ bin目录并键入“java”也会产生相同的错误。 如果我input“java.exe”而不是,完美的作品。
这个问题不仅影响java.exe。 即使是Microsoft可执行文件也会遇到同样的问题 – ping失败,ping.exe工作; ipconfig失败,ipconfig.exe工作; 手动创build的batch file“test”只有在显式调用“test.bat”时才可以使用。
任何明智的想法?
真棒! 这个问题在pathext中是一个错误的值 – 当编辑应该在PATHvariables上的时候,有人曾经不经意地编辑了PATHEXT系统variables(预先挂载%java_home%\ bin)。
谢谢!
好吧,我要在帽子里PATHEXT我的帽子,并说你的PATHEXT系统variables在这个系统上被弄糊糊或者根本不存在。 仔细查看您的环境variables是否也有重复的PATHEXT条目。
PATHEXT系统variables的默认值应该是:
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
坏消息是,如果没有这个启动服务器,你可能需要重新启动,让设置生效,因为它是一个系统variables。
你最近从那个盒子里删除了一个程序吗?
按照: http : //vlaurie.com/computers2/Articles/environment.htm
%PATHEXT%环境variables包含可执行文件扩展名,不必为%PATH%variables中给定的目录中的任何文件指定。 扩展名.EXE是最常见的。 因此,sol.exe文件只需要在命令行中input。 如果文件具有相同的名称但扩展名不同,则操作系统按以下优先顺序进行search:.EXE,.COM,.BAT和.CMD。
检查PATHEXT系统variables。
它应该显示如下的东西:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC