将实例、ParentNode、Value导出到事件链列表

本文关键字:事件 列表 实例 ParentNode Value | 更新日期: 2023-09-27 18:26:29

我有一个powershell脚本,它将InstanceParentNodeValue导出到列表中,并导出到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等…

将实例、ParentNode、Value导出到事件链列表

这里有一种解决方法:

        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项目集合来存储路径。您也可以很容易地使用列表来存储它们。