如何在Windows命令行中直接通过脚本名运行Python脚本?
如何在Windows命令行中直接通过脚本名运行Python脚本?
看起来你遇到的问题确实挺让人困惑的——明明assoc和ftype的配置都指向了Python Launcher,但输入脚本名却直接打开VS Code。我来帮你梳理几个可能的原因和解决办法:
1. 检查PATHEXT环境变量(最常见原因)
Windows命令行在你输入不带扩展名的命令时,会按照PATHEXT环境变量里的扩展名顺序去查找匹配的文件。如果.PY不在这个列表里,系统就不会自动识别blah对应blah.py,反而可能把它当作无扩展名文件用默认程序(也就是VS Code)打开。
- 打开命令提示符,运行:
echo %PATHEXT% - 看输出里有没有
.PY。如果没有,按以下步骤添加:- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」里找到
PATHEXT,点击「编辑」 - 在现有内容末尾添加
;.PY(注意前面的分号是分隔符,不能少) - 保存后重启命令提示符,再试试输入
blah。
2. 重置.py文件的默认打开方式
有时候Windows的图形界面默认程序设置会覆盖命令行的assoc/ftype配置,导致双击或命令行调用时优先用VS Code打开。
- 找到任意一个.py文件,右键→「打开方式」→「选择其他应用」
- 勾选「始终使用此应用打开.py文件」
- 在列表里选择「Python Launcher for Windows (py.exe)」(如果没看到,点击「更多应用」→「在这台电脑上查找其他应用」,找到
C:\WINDOWS\py.exe) - 确认后再回到命令行测试。
3. 排查是否有别名或同名文件干扰
- 检查是否设置了命令别名:运行
doskey /macros,看有没有blah相关的宏定义,如果有,用doskey blah=删除它。 - 检查PATH里是否有同名的其他文件:运行
where blah,看输出的路径是不是你的blah.py。如果有其他同名文件(比如blah.bat、blah.exe),系统会优先执行这些,你可以重命名或者调整PATH顺序。
4. 强制用Python Launcher运行脚本(临时/应急方案)
如果上面的方法都暂时没生效,你可以不用写bat文件,直接在命令行输入:
py blah
这个命令会直接调用Python Launcher运行blah.py,绕开扩展名关联的问题。
备注:内容来源于stack exchange,提问作者Darren Oakey
相关产品推荐
相关产品推荐

