Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python命令行-x选项_Python_Windows_Python 2.7_Python 3.x - Fatal编程技术网

Python命令行-x选项

Python命令行-x选项,python,windows,python-2.7,python-3.x,Python,Windows,Python 2.7,Python 3.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. 但是,请原谅:我真的不明白为什么有人会使用非Unix形式的!cmd,即使它是为DOS而做的,为什么要跳过它?用第一行启动Windows批处理脚本.bat/.

我最近看到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.

但是,请原谅:我真的不明白为什么有人会使用非Unix形式的!cmd,即使它是为DOS而做的,为什么要跳过它?

用第一行启动Windows批处理脚本.bat/.cmd:

@echo off & python -x "%~f0" %* & goto :eof
运行它时,cmd.exe将使用脚本的完整文件路径和其余命令行参数以静默方式运行python-x,然后忽略文件的其余部分。python将读取该文件,跳过第一行不会作为python代码解析的代码,并将其余的代码视为普通python脚本

这在类UNIX平台上是不必要的,因为

#!/usr/bin/env python

在脚本的顶部获得类似的行为,这看起来像Python的注释,因此它可以继续执行文件的其余部分。

使用以下第一行启动Windows批处理脚本.bat/.cmd:

@echo off & python -x "%~f0" %* & goto :eof
运行它时,cmd.exe将使用脚本的完整文件路径和其余命令行参数以静默方式运行python-x,然后忽略文件的其余部分。python将读取该文件,跳过第一行不会作为python代码解析的代码,并将其余的代码视为普通python脚本

这在类UNIX平台上是不必要的,因为

#!/usr/bin/env python

在脚本的顶部获得类似的行为,这看起来像Python的注释,因此它可以继续执行文件的其余部分。

谢谢你的回答。谢谢你的回答。注意,文档的输出日期是,CPython已经很长时间不支持MS-DOS了。这实际上是一个特定于窗口的黑客攻击。请注意,文档是日期输出的,CPython已经很长时间不支持MS-DOS了。这实际上是一个特定于窗口的黑客行为。