У нас есть проблема на одном ПК, которая, по-видимому, не учитывает аргументы в скриптах .bat, то есть не передает их вызываемым скриптам python. Он отлично работает на 10 или около того других очень похожих машинах.

У нас есть сценарий летучей мыши, как это:

@REM Just pass all arguments directly to the python script of the same name
@%~dpn0.py %*

На этом компьютере кажется, что аргументы не передаются вызываемому скрипту python.

Эта идиома используется повсеместно в наших пространствах сборки - и мы не можем понять, почему она выходит из строя только на одной машине.

Есть какие-нибудь предложения относительно причины, или как мы могли бы устранить проблему, пожалуйста?

  • ОС: Windows 7 Pro, 64-разрядная
  • Версия Python: 2.7.6

1 ответ1

2

Клэр задала этот вопрос от моего имени, но с тех пор я выяснил, что происходит. Спасибо JSanchez за стартовый указатель на ответ. Проблема была не в сценарии с битой, а в вызываемом им питоне; Я нашел работу, где печатать

python the_python_script.py the arguments 

работал уже. То, что не пришло мне в голову, это проверить только набрав

the_python_script.py the arguments

в командной строке и позволяя Windows позаботиться о том, какой Python использовать для запуска скрипта

Когда я сделал это таким образом, в программе возникла та же проблема - никаких аргументов.

Это, в свою очередь, привело меня к

Поэтому я проверил реестр - моя ассоциация действительно была нарушена

Исправлено, и теперь это, кажется, работает ... так что это был не сценарий .bat , а ассоциация файлов python.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .