Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Powershell在两个参考点之间提取字符串_Powershell_Hyperlink_Extract - Fatal编程技术网

使用Powershell在两个参考点之间提取字符串

使用Powershell在两个参考点之间提取字符串,powershell,hyperlink,extract,Powershell,Hyperlink,Extract,我试图从我使用EWS下载的文本文件中提取一个字符串数据。我正在使用powershell来执行此操作。该文件的一个片段如下所示 最好不要为此使用字符串操作;使用现有的库和类 因此,首先,将您的URI视为[URI]: $uri = [System.Uri]'https://www.website.com/idb/setPassword?t=BcHJEoIgAADQD%2BKQjqZ4VEKtBHLJJm82uWDuxCR%2Bfe%2B58Rl9HRz6QddWkO5MLDXuF6e9m%2Bo0

我试图从我使用EWS下载的文本文件中提取一个字符串数据。我正在使用powershell来执行此操作。该文件的一个片段如下所示


最好不要为此使用字符串操作;使用现有的库和类

因此,首先,将您的URI视为
[URI]

$uri = [System.Uri]'https://www.website.com/idb/setPassword?t=BcHJEoIgAADQD%2BKQjqZ4VEKtBHLJJm82uWDuxCR%2Bfe%2B58Rl9HRz6QddWkO5MLDXuF6e9m%2Bo0z%2FCVS%2B9IenAp5m5yTfYRa%2BAn4jdWHHF7HTyqRZiRRiNDEE%2BK7ZJywLKeNCTj4ewu4QNu02qXB0ZTXTyxXADwaLeluZGVPCxGXunpVcHbiCVAWRR7ykqGensLVBsqNUpl%2FQE%3D'
现在您可以获得如下查询字符串:

$query = $uri.Query
$queryData['t']
这将从
?t=
开始,因此让我们分析它:

$queryData = [System.Web.HttpUtility]::ParseQueryString($query)
结果对象具有一组关键点,每个值对应一个关键点。由于所需的键名为
t
,因此可以获得如下值:

$query = $uri.Query
$queryData['t']

所以我发现我输出到的文本文档是长URL的换行部分。我最后用-Width命令输出,所以它不会这样做

$email | Out-File $path -Width 9999999
然后我用火柴来抓取我需要使用的字符串

$a = Get-Content $path | Where-Object {$_ -match '(?<=https:\/\/www\.website\.com:443\/idb\/setPassword\?t=)(.+)(?=" style)'}
$matches[1]

$a=Get Content$path | Where Object{$\匹配'(?
'SomePrefixAnyString'.Substring('SomePrefix'.Length)
应该会产生
任何字符串。
。谢谢,问题是我不知道任何字符串是什么。它总是不同的。这就是为什么我必须有一个起点和一个终点,并在两者之间抓住任何东西。我想它一定是某种正则表达式…可能是答案,不确定这是否有效,因为我必须确定现在开始使用URL。每次进入的每个链接都是不同的。链接中唯一不变的是链接的结尾和引号"因此,这就是为什么我需要能够搜索那些指向引用点的参数,以提取中间的长字符串。@JasonMurray为什么这会阻止它工作?此方法具体不依赖于URL;唯一的假设是您想要的查询参数的键为
t
。只需获取包含s URL和强制转换为
[System.Uri]
如图所示,或使用
-as
运算符。示例仅对字符串进行硬编码,因为这是您提供的。啊,我明白您的意思。问题是我需要从电子邮件主体exchange中提取的html/文本数据中提取完整URL。所有这些数据都设置为一个变量,我应该能够阅读。因此,我需要一些方法从数据中提取URL,然后像您显示的那样对其进行解析,以便在t=@JasonMurray之后获得信息。这超出了您的问题范围,但我建议您。更新问题以反映更多我需要的答案…谢谢