Причина, по которой вы не получаете параметры, заключается в том, что вы разорвали связь .py, чтобы дважды щелкнуть эти файлы, чтобы открыть их в NotePad ++, а затем разорвали связь .pyw, чтобы сделать то, что должен делать .py.
Короче говоря, вы забыли включить %*
в конце командной строки Python.exe для вашей "настроенной" (искаженной) ассоциации .pyw.
ASSOC и FTYPEКоманды используются для отображения ассоциаций и типов файлов, т. е. какая программа запускается для обработки файла с определенным расширением.Вот что эти команды производят в моей системе:
C:\test>assoc .py
.py=Python.File
C:\test>assoc .pyw
.pyw=Python.NoConFile
C:\test>ftype python.file
python.file="C:\Python27\python.exe" "%1" %*
C:\test>ftype python.noconfile
python.noconfile="C:\Python27\pythonw.exe" "%1" %*
Обычная ассоциация .py запускает python.exe с окном консоли, чтобы вы могли видеть выходные данные операторов print.
обычный .pyw Ассоциации запускает pythonw.exe без консольного окна.
В конце каждой командной строки вы можете увидеть %*
.Это то, что отправляет параметры в команду.(На самом деле, %1
является первым параметром, а %*
означает «все остальные параметры».)
Когда вы пытаетесь запустить файл python из командной строки без ввода его расширения или начального «python»msgstr "команда, происходит несколько вещей.
Сначала переменная окружения PATHEXT используется для поиска подходящего расширения.В вашем случае он находит, что имя вашей команды "gcc_opt" + .PYW приводит к соответствующему файлу.
Затем ищется ассоциация для файлов .PYW, которая находит тип файла Python.NoConFile, который в вашем случаеустановлено значение "python.exe" (предполагается, что это pythonw.exe).(Вы можете увидеть их в реестре в разделе HKEY_CLASSES_ROOT.)
Затем система создает фактическую командную строку из шаблона команды, найденного для этого типа файла, который в вашем случае, вероятно, равен
"[your-python-path]python.exe" "%1"
Это говорит о том, что нужно использовать только первый параметр, имя вашего скрипта Python "gcc_opt.pyw".
Быстрое исправление заключается в добавлении %*
в конец этой команды.
Исправление CORRECT - возвращение правильных ассоциаций и открытие файлов Python для редактирования с помощьюболее стандартный метод (перетащите значок на NotePad ++ или, может быть, щелкните правой кнопкой мыши и отредактируйте с помощью NotePad ++).