Windows批处理文件未退出

时间:2018-03-20 07:56:14

标签: batch-file task taskmanager

我不擅长Windows脚本。 (我是linux的家伙) 我必须在两个目录中删除超过n天的文件。 我在脚本中使用2 forfiles命令。当我手动运行脚本时没有问题所以它正在运行并正常完成其工作,完成大约需要30秒

所以我创建了一个任务,每天在任务调度程序中运行这个批处理文件 当任务计划程序执行脚本时,脚本无法结束,我可以在任务管理器中看到正在运行的forfiles命令,并且随后的一天任务管理器创建一个脚本/命令已在运行的日志。所以我终止脚本并再次运行“手动”,它成功运行并再次在30-35秒内完成其工作

我的脚本就是那样

y:
cd \<path1>
forfiles /s /d -120 /m *.* /c "cmd /c del @path"
cd \<path2>
forfiles /s /d -120 /m *.* /c "cmd /c del @path"
EXIT

如何正确运行任务管理器中的批处理文件?

由于

1 个答案:

答案 0 :(得分:0)

对我而言,这听起来像权利问题。如何执行脚本(直接通过启动程序或批处理文件)?你正在运行哪些窗口?

在Windows 7和任务计划程序上:

填写正确的用户 - 谁有权运行任务并访问文件。

尝试使用勾选Run with highest privileges复选框运行脚本。

修改

斯特凡是对的。如果从批处理文件中运行它,则必须使用正确的凭据映射网络驱动器:

net use <driver letter> "\\<servername>\<sharename>" /user:<username> <password>

您可以通过以下方式执行此操作:

IF NOT EXIST y:\ (
  ECHO "The y: drive does not exist.  Mapping"
  net use y: "\\<servername>\<sharename>" /user:<username> 
)