我从一个XML文件中获取服务器的所有任务
schtasks /Query /XML ONE>C:\schedtasksBackup.xml
现在,我想导入所有的任务在另一台服务器。 所有信息解释了如何导入o一次创build一个任务,但不能同时完成多个任务。
这是可能的? 还是我需要拆分多个primefaces任务文件中的文件?
我相信,如果你想使用schtasks,你需要使它们成为primefaces。 如果您想安排多个任务(或者只是想要更细化的选项),build议您在powershell中使用新任务cmdlet,如果您尚未安装资源工具包,请参阅PowerShellPack 。
我编写了这个代码来分割XML并逐一导入任务:
var taskXML = new XmlDocument(); taskXML.Load(@"d:\temp\schedtasksBackup.xml"); var batbody = new StringBuilder(); XmlNodeList tasks = taskXML.DocumentElement.GetElementsByTagName("Task"); string strFileName = "d:\\temp\\Task"; for (int i = 0; i < tasks.Count; i++) { string onetaskXML = tasks[i].OuterXml; //Create the New File. With a little more extra effort //you can get the name from a comment above the task XmlWriter xw = XmlWriter.Create(strFileName + "_" + (i+1) + ".xml"); batbody.AppendLine(string.Format("schtasks.exe /create /TN \"{0}\" /XML \"{1}\"", "Task " + (i+1) + " Name", strFileName + "_" + (i+1) + ".xml")); //Write the XML xw.WriteRaw(onetaskXML.ToString()); xw.Close(); // Write a bat to import all the tasks var batfile = new System.IO.StreamWriter("d:\\temp\\importAllTasks.bat"); batfile.WriteLine(batbody.ToString()); batfile.Close(); }
编辑:但是,这并不容易。 我无法find为什么,但schtasks.exe导入文件malformed XML error 。 我必须手动导入文件(讨厌它,但没有更多的时间花在这个问题上)