我不擅长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
如何正确运行任务管理器中的批处理文件?
由于
答案 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>
)