从.BAT运行的Python不返回任何结果

时间:2019-07-11 14:05:17

标签: python anaconda

Python 3.7.3 / Win 10 BAT文件启动并记录其开始和结束时间,包括Python脚本未运行,均未产生结果。没有创建或更新Dates.txt,并且不呈现打印语句。没有错误返回,我的CMD窗口保持暂停。

我尝试了在BAT上启动PY所能找到的所有变化,这并不令人高兴。从.BAT内调用.PY似乎没有太多选择。我已经尝试过运行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上运行良好,使用正确的值创建了dates.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 :(得分:0)

这是一个双重问题:

  • 首先,该脚本似乎可以在Spyder中运行,但不能在其他任何地方运行。看起来“ C:\ ProgramData \ Anaconda3 \ pythonw.exe”可能是拼写错误-典型的安装只是'python.exe'
  • 第二,您需要从datetime导入日期。