Python run из .BAT не возвращает никаких результатов - PullRequest
2 голосов
/ 11 июля 2019

Python 3.7.3 / Win 10 BAT-файл запускается и регистрирует время начала и окончания, включенный скрипт Python не запускается, результатов не дает. Dates.txt не создается и не обновляется, а операторы печати не отображаются. Ошибки не возвращаются, и мое окно CMD удерживается на паузе.

Я перепробовал все варианты, которые я смог найти на SO, для запуска PY из BAT, но без радости. Похоже, вариантов вызова .PY из .BAT не так много. Я попытался запустить BAT и только вызов Python самостоятельно, из обычных командных команд с повышенными привилегиями (admin), без изменений.

get_dates.bat:

    SET logfile="J:\My Drive\_Ongoing\Python\250ok_v20\batch.log"
    @echo Starting Script at %date% %time% >> %logfile%
    "C:\ProgramData\Anaconda3\pythonw.exe" "J:\My 
    Drive\_Ongoing\Python\250ok_v20\get_dates.py"
    pause
    @echo Finished at %date% %time% >> %logfile%

get_dates.py:

    from dateutil.relativedelta import relativedelta
    from datetime import datetime

    file = "J:/My Drive/_Ongoing/Python/250ok_v20/date.txt"
    def get_dates():
        today = date.today()
        d = today - relativedelta(months=1)
        date(d.year, d.month, 1)
        startdate = (date(today.year, today.month, 1) - 
relativedelta(months=1))
        enddate = (date(today.year, today.month, 1) - relativedelta(days=1))
        startdate = str(startdate)
        enddate = str(enddate)
        return(startdate, enddate)

    (startdate, enddate)= get_dates()

    with open(file, 'w') as the_file:
        the_file.write(startdate+'\n')
        the_file.write(enddate+'\n')

    print(startdate)
    print(enddate)

Сценарий PY прекрасно работает из Spyder, файл date.txt создается с правильными значениями. Если я бегу:

"J:\My Drive\_Ongoing\Python\250ok_v20\test.bat"

из CMD, batch.log добавляет начальные / конечные строки, но dates.txt не создается / обновляется.

Если я бегу:

"C:\ProgramData\Anaconda3\pythonw.exe" "J:\My Drive\_Ongoing\Python\250ok_v20\get_dates.py"

Ничего не происходит, никаких следов. Это как-то связано с Анакондой? У меня ранее была установлена ​​другая версия Python, и я, возможно, не удалял ее перед установкой Spyder/Anaconda, это может вызвать проблемы?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 11 июля 2019

Это двойная проблема:

  • Во-первых, кажется, что скрипт работает в Spyder, но не где-нибудь еще. Похоже, что "C: \ ProgramData \ Anaconda3 \ pythonw.exe" может быть опечаткой - типичные установки просто 'python.exe'
  • Во-вторых, вам нужно будет импортировать дату из даты и времени.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...