V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beric
V2EX  ›  问与答

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

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

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

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

    验证的话,可以把你的目标路径放到环境变量 PATH 的开头(第一位),试试看
    Tumblr
        8
    Tumblr  
       2019-08-15 21:55:35 +08:00   ❤️ 1
    在 path 中添加了,cmd 没有重新加载。
    其实在 Windows 10 里,还是推荐用 PowerShell 了,如果长期使用,可以在 sysdm.cpl 下修改;如果临时使用,可以直接这样修改:
    $env:path += ";_path_to_exec_"
    这样就立马生效了。
    baobao1270
        9
    baobao1270  
       2019-08-15 23:35:58 +08:00   ❤️ 1
    可能是 PATHEXT 变量的问题,在该变量里加入".exe"
    也可能是 PATH 目录优先级的问题
    R0n1n
        10
    R0n1n  
       2019-08-16 00:03:18 +08:00 via Android   ❤️ 1
    pathext 中的定义有优先级,可能是那个目录有个跟.exe 同名的.bat 或者.cmd 之类的文件...?.bat 和.cmd 等这些后缀的文件优先级比.exe 要高。
    lonewolfakela
        11
    lonewolfakela  
       2019-08-16 11:10:14 +08:00
    用 where 命令看看有没有同名的可执行的东西吧
    beric
        12
    beric  
    OP
       2019-08-25 23:12:11 +08:00
    @lonewolfakela
    @R0n1n
    @baobao1270
    @hoyixi
    @Tumblr
    感谢,之前问题就解决了,感觉是之前的目录权限有毒,也说不上来为什么。
    话说现在 win 10 更新也没个具体说明,有些老的软件突然就不正常工作了,也不知道为什么,很烦……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3454 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.