Python命令行-x选项

我最近看到python把-x作为一个命令行选项,它在文档中做了解释

python -x Skip the first line of the source, allowing use of non-Unix forms of #!cmd. This is intended for a DOS specific hack only. 

但是,请原谅:)我真的不明白为什么有人会使用#!cmd的非Unixforms,即使它(DOS)为什么跳过它?

用这第一行开始一个Windows批处理脚本( .bat / .cmd ):

 @echo off & python -x "%~f0" %* & goto :eof 

当你运行它的时候, cmd.exe会以脚本的完整文件路径和其余的命令行参数静静地运行python -x ,然后忽略文件的其余部分。 python会读取文件,跳过第一行(不会像Python代码那样解析),然后像其他Python脚本一样处理。

在类UNIX平台上这不是必须的,因为你会放

 #!/usr/bin/env python 

在脚本的顶部获得类似的行为,看起来像是对Python的注释,所以它继续执行整个文件的其余部分。