win10 下的 cmd 运行命令为何要加上 exe?

2019-08-15 19:38:04 +08:00
 beric
win 10 下环境变量的中 path 加了一个包含可执行程序.exe 的目录,重启电脑后为什么在 cmd 里不能直接用程序名运行,得要加上.exe 才行。很奇怪。像 python 那样的目录就可以。
3355 次点击
所在节点    问与答
12 条回复
olaloong
2019-08-15 19:56:38 +08:00
没能复现这个问题。。。
WIN10 1809 18362.267
beric
2019-08-15 20:01:06 +08:00
@olaloong 我怀疑是我系统的问题了,有些目录可以,有些就不行,比如一个 QT 的目录包含了 gcc,我加进去后就得在 cmd 窗口里输入 gcc.exe 才行,其它的一些像 cmake 那些,加入 path 后就直接输入 cmake 就好了,很奇怪。
sosilver
2019-08-15 20:48:35 +08:00
PathExt 环境变量查一下
beric
2019-08-15 21:22:38 +08:00
@sosilver
@olaloong 刚才一波折腾被工弄好了。我先把那个含有 exe 的目录 copy 到其它盘,路径到 path 居然是可以的。然后在重新移动回之前不行的路径并重换了个名字,居然也可以。然后改了之前不可以那个目录的目录名,也可以。……之前搞了好久都不行。搞不懂这 WIN 是怎么回事。
ETiV
2019-08-15 21:33:44 +08:00
(话说 #3 的头像看着很像 sublime text 的 icon )

忙猜:PATH 路径下有个没有 exe 的文件(路径)存在,所以执行不到?加了 exe,就能找到 LZ 想要的文件了

不知道 win 下有没有 which、whereis 这种存在,可以看看
hoyixi
2019-08-15 21:44:25 +08:00
你说的不能运行,报什么错?
hoyixi
2019-08-15 21:46:54 +08:00
看了你 4 楼,感觉可能是环境变量里的某个其它路径(这个路径在环境变量里的顺序,先于你的目标路径)下,包含了同名文件,但是该文件不可运行

验证的话,可以把你的目标路径放到环境变量 PATH 的开头(第一位),试试看
Tumblr
2019-08-15 21:55:35 +08:00
在 path 中添加了,cmd 没有重新加载。
其实在 Windows 10 里,还是推荐用 PowerShell 了,如果长期使用,可以在 sysdm.cpl 下修改;如果临时使用,可以直接这样修改:
$env:path += ";_path_to_exec_"
这样就立马生效了。
baobao1270
2019-08-15 23:35:58 +08:00
可能是 PATHEXT 变量的问题,在该变量里加入".exe"
也可能是 PATH 目录优先级的问题
R0n1n
2019-08-16 00:03:18 +08:00
pathext 中的定义有优先级,可能是那个目录有个跟.exe 同名的.bat 或者.cmd 之类的文件...?.bat 和.cmd 等这些后缀的文件优先级比.exe 要高。
lonewolfakela
2019-08-16 11:10:14 +08:00
用 where 命令看看有没有同名的可执行的东西吧
beric
2019-08-25 23:12:11 +08:00
@lonewolfakela
@R0n1n
@baobao1270
@hoyixi
@Tumblr
感谢,之前问题就解决了,感觉是之前的目录权限有毒,也说不上来为什么。
话说现在 win 10 更新也没个具体说明,有些老的软件突然就不正常工作了,也不知道为什么,很烦……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/592246

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX