将实例、ParentNode、Value导出到事件链列表
本文关键字:事件 列表 实例 ParentNode Value | 更新日期: 2023-09-27 18:26:29
我有一个powershell脚本,它将Instance
、ParentNode
和Value
导出到列表中,并导出到CSV文件中。我在多台机器上运行这个,并将它们附加到主列表中。示例:
Server1
Instance ParentNode Value
----------------------------------------
InstanceA BatchName BatchX
InstanceA SourceFolderPath ''server'feeds'BlahBlah
InstanceA DestinationLocation ''Server'archive'BlahBlah
InstanceA DestinationLocation ''Server'consumption'BlahBlah
InstanceA BatchName BatchT
InstanceA SourceFolderPath ''server'feeds'i.BlahBlahFailed
InstanceA DestinationLocation ''Server'archive'i.BlahBlahFailed
InstanceA DestinationLocation ''Server'consumption'BlahBlahFailed
ServerB
----------------------------------------
InstanceC BatchName BatchX
InstanceC SourceFolderPath ''Server'archive'i.BlahBlahFailed
InstanceC DestinationLocation ''Server'archive2'BlahBlah
InstanceC DestinationLocation ''Server'consumption2'BlahBlah
现在,一些SourceFolderPaths
的次数增加了100次,这是其他服务器上的目的地。最终目标是能够从开始到结束获得一个提要路径列表。任何语言都可以使用C#、PHP等…
这里有一种解决方法:
string[] input = File.ReadAllText("textfile3.txt").Split(new string[1] { "SourceFolderPath" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 1; i < input.Count(); i++)
{
listBox1.Items.Add(input[i].Substring(0,input[i].IndexOf("Instance") - 1).Trim());
}
如果不希望将整个文件读取到内存中,您可以像这样迭代文件:
StreamReader sr = new StreamReader("textfile3.txt");
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
int index = line.IndexOf("SourceFolderPath");
if (index >= 0)
{
listBox1.Items.Add(line.Substring(index + 16).Trim());
}
}
我使用了listbox项目集合来存储路径。您也可以很容易地使用列表来存储它们。