gpt4 book ai didi

Powershell,转义正则表达式转义方法中不存在的字符串变量中的特定字符

转载 作者:行者123 更新时间:2023-12-02 19:07:08 29 4
gpt4 key购买 nike

来自 this post我了解到我可以使用 [Regex]::Escape() 来转义所有 the commonly escaped characters在字符串变量中。问题是我将使用包含 & 字符的路径,然后在 URL 中使用它进行 RestAPI 调用,而该转义方法不会转义 & 字符。

当路径包含 & API 将其解释为 URL 中的运算符且未正确解析时:

$MyPath = "\\Server\Share\Something & Something Else"
$MyURL= "http://localhost/Address/to/APIResource/"
Invoke-RestMethod -Method Get -Uri ("$MyURL" + "?path=$MyPath") -UseDefaultCredentials

?path=$MyPath 是问题所在,因为 $MyPath 包含 & 因此将不起作用。如何转义 $MyPath 中的 & 字符以使其与 RestAPI 一起使用?

最佳答案

I learned that I can use [Regex]::Escape() to escape all the commonly escaped characters in string variables

现在你会知道那根本不是真的:)

[regex]::Escape() 转义字符,否则可能会被解释为转义序列由 .NET 的正则表达式语法定义 em> - 它专为这种情况而设计,并且只保证在这种情况下工作。


对于 URI 参数,您需要使用 [uri]::EscapeDataString() :

Invoke-RestMethod -Uri ("$MyURL" + [uri]::EscapeDataString("?path=$MyPath")) ...

关于Powershell,转义正则表达式转义方法中不存在的字符串变量中的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64867223/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com