Python脚本正常运行,但无法调度

2024-04-25 15:15:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python,它可以正常运行,但不能在windows7任务调度器上成功运行。我甚至创建了一个批处理文件来调用python脚本。你知道吗

在任务行动(“启动程序”)下,我有

C:\Backup\backup.bat

很简单,我找不到我做错了什么。还有什么我需要注意的吗?你知道吗


Tags: 文件程序脚本backup任务调度batwindows7
1条回答
网友
1楼 · 发布于 2024-04-25 15:15:51

在驱动器C上创建一个目录Temp,并确保每个人的安全权限都设置为完全控制。你知道吗

放入顶部的批处理文件中:

@echo off
echo Current directory: %CD%>C:\Temp\Environment.txt
echo.>>C:\Temp\Environment.txt
echo Environment variables:>>C:\Temp\Environment.txt
echo.>>C:\Temp\Environment.txt
set >>C:\Temp\Environment.txt

双击批处理文件时,它会将当前目录写入文件C:\Temp\Environment.txt,该文件将是批处理文件的目录。它还将为用户帐户定义的所有环境变量写入文件C:\Temp\Environment.txt。你知道吗

现在将Environment.txt重命名为DoubleClickedEnvironment.txt。你知道吗

然后执行必要的操作,以运行与计划任务相同的批处理文件,然后查看C:\Temp\Environment.txt。你知道吗

通过比较C:\Temp\Environment.txtC:\Temp\DoubleClickedEnvironment.txt,您很可能会发现当前目录现在是C:\Windows\System32(分别是%SystemRoot%\System32),而不是包含批处理文件和环境变量列表的目录,并且它们的值不同。你知道吗

当不引用批处理文件中的可执行文件时,最重要的环境变量是PATHPATHEXT,如果名称或路径包含1个或多个空格,则批处理文件的文件名带有扩展名,完整路径用双引号括起来。此外,为Python定义并由Python计算的所有环境变量在批处理文件中都很重要。你知道吗

另一个在按计划任务运行时常见的错误是,认为计划任务的已用帐户在访问文件和目录时具有与当前用户相同的权限。如果未使用您的用户帐户执行计划任务,则不会出现这种情况。你知道吗

最后一个映射的网络驱动器在作为计划任务运行批处理文件时未映射。映射网络驱动器仅在用户登录时由Windows完成。所以在批处理文件中设计为按计划任务运行

  • 必须使用UNC路径,或者
  • 命令pushdpopd用于使用为计划任务定义的帐户的凭据将网络共享临时映射到驱动器号,或
  • %SystemRoot%\System32\net.exe X: \\ComputerName\ShareName password /user:domain\username /persistent:no

    用于批处理文件的开头,并且

    %SystemRoot%\System32\net.exe X: /delete

    在批处理文件末尾用作驱动器X:的示例。

最后一种方法是非常不安全的,因为这使得每个有权限读取批处理文件的人都可以获得共享的用户名和密码。你知道吗

相关问题 更多 >