我一直试图解决我的问题,
我有一个名字存储为字符串,看起来像这样。
FirstName LastName d111
我想将FirstName LastName存储为变量
我尝试使用代码$Name.Split("d11")[0]
,该代码工作了一段时间,直到我意识到该名称是否包含" d"它也像分隔符一样。
有人可以帮我解决这个问题吗?
谢谢你们
答案 0 :(得分:2)
假设你总是有一个空格和那个顺序的字段,你应该使用空格作为分隔符:
$Name.Split(" ")[-4..-2] -join " "
此更新方法将从预期的最后一项(-4)转到发送到最后一项(-2)。
-4适用于您的示例,或类似的内容:
FirstName Middle Name LastName d111
如果您希望能够处理更多字段,只需调整数字即可。例如-10最多可处理9个名称,并省略最后一个字段(d111)
答案 1 :(得分:0)
感谢您的帮助!
最后,我选择了一个比你提到的更难的解决方案,我可能会稍后编辑我的代码。
如果有人需要,我使用的代码
$user1 = $user.name.Split(" ")[0] #firstName
$user1 = $user1 + " "
$user2 = $user.name.Split(" ")[1] #secondName
$user3 = $user.Name.Split(" ")[2] #thirdName
if ($user3 -like "d111*")
{ $user3 = $null
$user = $user1 + $user2}
else
{ $user2 = $user2 + " "
$user = $user1 + $user2 + $user3}
$user1 = $null
$user2 = $null
$user3 = $null