哪些Windows版本支持shebang ?



我使用pyenv-win,发现在我的Windows版本(20H2 19042.1165)中,where.exe支持shebang脚本:

C:> where python
C:Usersded.pyenvpyenv-winshimspython
C:Usersded.pyenvpyenv-winshimspython.bat

第一个python文件是:

#!/bin/sh
pyenv exec $(basename "$0") "$@"

魔法是什么?在where.exe中是否支持本地shebang ?哪个Windows版本包含此功能?

PS:在cmd中运行python会执行python.bat而不是python

where.exe正在路径中查找具有指定名称的文件。如果没有扩展,它还会尝试PATHEXT环境变量中列出的所有扩展。你的文件不需要shebang来查找。

下面创建了几个文本文件,where找到了没有扩展名的文件,以及PATHEXT中列出的扩展名:

C:>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw
C:>echo >abc
C:>echo >abc.txt
C:>echo >abc.bat
C:>where abc
C:abc
C:abc.bat

最新更新