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

1848
Clare Macrae

У нас есть проблема на одном ПК, которая, по-видимому, не учитывает аргументы в скриптах .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
0
В целях отладки, что произойдет, если вы `echo% *` вместо того, чтобы вызывать скрипт Python и передавать параметры? Вы в состоянии увидеть все аргументы? Вы достигли предела командной строки 8191, как описано здесь? http://support.microsoft.com/kb/830473 JSanchez 10 лет назад 3

1 ответ на вопрос

2
user293026

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

python the_python_script.py the arguments 

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

the_python_script.py the arguments 

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

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

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

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

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

Похожие вопросы