我有一个vbs脚本使用MySQLDump命令备份MySQL数据库文件。 这是完美的工作,并为每一天的备份(例如20130110)创build一个新的文件夹。
但是,脚本也是通过删除x天以前的文件夹来清理。
当我手动运行脚本时,它完美地工作,但是当我在任务计划程序中设置脚本并将其设置为“运行用户是否已login”(使用pipe理员用户帐户)时,任务将失败。 我相信问题是权限,但由于文件夹是由任务创build的,所以应该能够被任务删除。
顺便说一句,vbs脚本使用FileSystemObject DeleteFolder命令来执行删除…
任何意见,将不胜感激!
编辑这是Definatelty FileSystemObject的DeleteFolder命令是这个问题。 我已经尝试设置文件夹有每个人,完整的权限,但仍然没有喜悦…
答案如下:
设置操作时,不要将“程序/脚本”设置为包含path(例如“C:\ Scripts \ Backup.vbs”),您需要将“程序/脚本”设置为“Backup.vbs” “开始”为“C:\ Scripts \”
脚本现在工作!
感谢http://www.blogfodder.co.uk/2012/4/20/win-2008-task-scheduler-with-return-code-1-0x1的build议…
什么是你的任务的命令行? 这个任务产生的“最后运行结果”是什么? 是否在“历史logging”选项卡中显示任何错误或警告? 你有UAC启用,但忽略检查“运行最高权限”选项?
尝试添加一些debugging代码到你的脚本来隔离错误。 我个人更喜欢logging到事件日志,以避免文件系统权限问题。
Set sh = CreateObject("WScript.Shell") sh.LogEvent 4, "marker 1" ' your code here sh.LogEvent 4, "marker 2" ' more of your code here sh.LogEvent 4, "marker 3" ' ...
这应该给你一个大概的想法,你的代码的哪一部分是有问题的。 一旦你find了,你可以添加更具体的debugging代码,例如:
' some code On Error Resume Next ' first instruction here If Err Then ReportError "Error in 1st instruction" ' second instruction here If Err Then Report Error "Error in 2nd instruction" ' ... On Error Goto 0 ' more code Sub ReportError(txt) CreateObject("WScript.Shell").LogEvent 1, txt & ": " & Err.Description _ & " (0x" & Hex(Err.Number) & ")" WScript.Quit 1 End Sub