从文件的一部分创建变量

本文关键字:创建 变量 一部分 文件 | 更新日期: 2023-09-27 18:32:03

嗨,在确定从哪里开始从Windows远程协助创建的文件创建变量时遇到问题。我需要从文本文件中提取端口,以便我可以创建一个 ssh 隧道,允许从任何地方进行远程协助。

端口出现在"RCTICKET="65538,1,192.168.9.22:7532"中的 IP 地址之后,冒号是整个文件中的第一个,所以我想我需要搜索第一个":",然后复制它后面的 4 位数字,除非端口是 5 位数字(我认为这里检查第 5 个字符是否是逗号,表示 4 位端口,如果它是一个数字,表示 5 位端口)

任何帮助从哪里开始,我已经在谷歌上搜索了几个小时,只是想不出如何将其放入搜索词中。

下面是 test.msrcincident 的示例,我需要从中提取端口的 Microsoft 远程协助创建的文件

<?xml version="1.0"?>
<UPLOADINFO TYPE="Escalated"><UPLOADDATA USERNAME="jon"          LHTICKET="BDF9C9782B31A1BC276C029A169930ABB4490E2088169FA45A3A095258F5C54D345F4D793363E2C9   B924C5D6A38210AF2E86B3E3D33E5BEB3E35729ECDA88D5F5CE23879899768432726AF419FA2147194F4358BA2A0F245C4307EC8CAB882E2B670977562E5423C90EC336A15BA3DC57496F1EBB26B55B449B45FBD317CD4E422186EA7989F78C6FC3019BCF5831B1E060B174C5254D92448992A543079E576A66617F8B5BEA4C5961FC75C0B67F28B996CD4F1247DBC1C725B9D69B094B53AE24A533501A607CF119ED99C34F0C7210376C6564A48E25871AA32934409D981CF63F60DA956B0877AFBD669DFC321D16D55A34B9949AE0B26B6EEB473915AC416ABFC1129C08021F4011F1F0D1869BB86842C0218C03286C956FC7897B319E0B3A495EBA8ED41835E84E6BAD6B30199F6ACF191B6529DF2C5A264F578AF3B31A84997DA9C4BF1F8AD9E4931F99AE94A0E66D941F050AC0B025523148A95D24E60A6C548341C486BB40089B2088F5FE49AC966D65B728E36E0D7D76C98827335983BEC912DFC0B714DBBBFA060DE62658E7BABDB9BEB45486138950548DA62FDFD6437D0798A67D20CA1911880F58FCDA5F98FA5E0CAEF643171FE9DA8AF046" RCTICKET="65538,1,192.168.9.22:7532,*,U15FphW2EDtpPVdlHmafYLmnO/aVc+YFoFEw30tpjJ+6vJ+LspOTtaqgFoDt3bsp,*,*,P1ooZJPDyfMMTXqlz5hACdwD8F4=" PassStub="TE*0ViGNuB2T6I"     RCTICKETENCRYPTED="1" DtStart="1379526042" DtLength="360" L="0"/></UPLOADINFO>

感谢您的阅读

从文件的一部分创建变量

像这样简单的事情在某种程度上会让你获得你需要的数据:

    var reader = XDocument.Load("path to XML file");
    var data = reader.Element("UPLOADINFO")
                     .Element("UPLOADDATA")
                     .Attribute("RCTICKET")
    var values = data.Split(',');

您需要使用该 RCTICKET 字符串来提取所需的值。在单个属性而不是整个文件的上下文中使用逗号、冒号等会更安全一些。警告:当我生成事件文件时,我最终在 RCTICKET 字段中有多个 IP 地址。我的机器中有多个 VPN 和以太网适配器。你必须选择正确的一个。

如果 XML 不是我们预期的格式,或者文件无法访问,则还需要处理失败。您可以通过尝试/捕获和/或检查空值来执行此操作。