Powershell 从字符串中获取值,知道它总是以字符串开头并以字符串结尾

Powershell Get Value from string knowing it always starts with a string and ends with a string

我是 运行 一个 SQL 查询,需要从字段中提取机器名称。结果有多个条目,用分号分隔。我只关心 Server=PCName\SQL_Instance 的值。我正在使用的值看起来像...

Provider=SQLOLEDB;Server=PCName\SQL_Instance;SomeOtherCrap=moreWords;ThisGoes=OnAndOn
Proer=SQLOLEDB;Server=PCName\SQL_Instance;SsdgsdfomeOtherCrap=moreWords;TzfdzdfghisGoes=OnAndOn

server= 将始终包含我的 PC 名称(本地 Access DB 安装),即使有多行,它们都是相同的。我真的只需要知道一次名字。虽然我已经将值拆分为 ;我的大脑太炸了,无法弄清楚如何从结果中获取服务器名称。我确信这是非常明显的,因为价值是通过盘子交给你的,但我不是那么聪明,甚至无法弄清楚如何搜索答案。

您可以使用 StartsWith("Server") 过滤出所需的对象,然后在“=”和“/”上进行另一个拆分,使用 RegEx 可能更容易,但我喜欢拆分,例如:

 $string = "Provider=SQLOLEDB;Server=PCName\SQL_Instance;SomeOtherCrap=moreWords;ThisGoes=OnAndOn"
 $string.Split(";") | Where {$_.startswith("Server")}
 Server=PCName\SQL_Instance
 ($string.Split(";") | Where {$_.startswith("Server")}).split("=")[1].split("\")[0]
 PCName