2017-01-29 2 views
1

Я недавно видел, что питон берет -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), почему пропустите ее?

+1

Обратите внимание, что документация выводится с даты, CPython не поддерживает MS-DOS в течение очень долгого времени. Это на самом деле взломать окна. –

ответ

4

Запустите пакетный скрипт Windows (.bat/.cmd) с первой строки:

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

Когда вы запустите ее, cmd.exe молча бежать python -x полный путь файла в сценарий, а остальные команды -line, а затем игнорировать остальную часть файла. python будет читать файл, пропуская первую строку (которая не будет анализироваться как код Python) и будет рассматривать остальные как обычный скрипт Python.

Это не стоит на UNIX-подобных платформах, потому что вы бы поставил

#!/usr/bin/env python 

в верхней части сценария, чтобы получить подобное поведение, которое выглядит как комментарий к Python, поэтому он продолжает выполнение через остальная часть файла просто прекрасна.

+0

Спасибо за ваш ответ. –