Python脚本没有在Windows任务调度程序中运行



我有一个简单的python脚本,当我通过命令行运行它时,它会运行。我还创建了一个批处理文件来运行python脚本。当我双击它时,它会正常运行。我无法获得python脚本或包含python脚本的批处理文件在Windows任务调度程序中运行,并获得和错误见下文。我只是希望能够通过任务调度程序运行Python脚本或批处理文件。我从这里的其他问题中尝试了多种方法,关于在参数中放置完整路径并在位置中开始,并且仍然得到相同的结果。

这是我的批处理文件代码,工作时双击文件很好,但不会在任务调度程序中运行:"C:Usersbrant.evansAppDataLocalProgramsPythonPython39python.exe" "C:Usersbrant.evansSQ Back Office-COR - GeneralPCMS_Part_CommentsCurrent_CSV_OutputPCMS_Parts_CSV_to_Excel.py" pause

下面是我通过任务调度程序运行它时得到的错误:

Traceback (most recent call last):
File "C:Usersbrant.evansSQ Back Office-COR - GeneralPCMS_Part_CommentsCurrent_CSV_OutputPCMS_Parts_CSV_to_Excel.py", line 7, in <module>
df_new = pd.read_csv('Current_PCMS_Parts.csv')
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 605, in read_csv
return _read(filepath_or_buffer, kwds)
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 457, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 814, in __init__
self._engine = self._make_engine(self.engine)
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 1045, in _make_engine
return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 1862, in __init__
self._open_handles(src, kwds)
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasioparsers.py", line 1357, in _open_handles
self.handles = get_handle(
File "C:Usersbrant.evansAppDataLocalProgramsPythonPython39libsite-packagespandasiocommon.py", line 639, in get_handle
handle = open(
FileNotFoundError: [Errno 2] No such file or directory: 'Current_PCMS_Parts.csv'

我只是想能够直接使用python脚本或批处理文件,其中有python脚本通过Windows任务调度程序,所以我可以安排它运行。我知道如果我在命令提示符中手动运行它们或者只是双击批处理文件,它们都可以工作。

我实际上找到了解决这个问题的解决方案。在批处理文件中,我放入了以下内容:

在批处理文件中,插入在第一行之后,通常是@echo离开行:

setlocal EnableExtensions禁用delayeexpansionpushd"% ~ dp0"批处理文件还应该包含在退出批处理文件处理之前执行的最后两行:

popdendlocal

最新更新