Скрипт DOS .bat не передает аргументы

У нас есть проблема на одном ПК, которая, по-видимому, не учитывает аргументы в скриптах.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 ответ

Решение

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

python the_python_script.py the arguments 

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

the_python_script.py the arguments

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

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

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

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

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

Другие вопросы по тегам