Скрипт 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 использовать для запуска скрипта
Когда я сделал это таким образом, программа показала ту же проблему - никаких аргументов.
Это, в свою очередь, привело меня к
- Windows не передает аргументы командной строки программам Python, выполняемым из оболочки
- Аргументы командной строки Python (Windows)
Поэтому я проверил реестр - моя ассоциация действительно была нарушена
Исправлено, и теперь это, кажется, работает... так что это не было .bat
сценарий, а не ассоциация файлов Python.