PowerShell在字符串前后放置文本

时间:2018-11-05 18:32:13

标签: powershell split

我有一个PowerShell脚本,该脚本通过从AD中提取数据并使用其中包含变量的docx模板并将变量替换为我们从AD中提取的字符串来自动为所有员工生成签名。

我们的广告结构会自动在地址末尾添加一些额外的数据(123 Main Street楼层:01室:01),但是大多数员工没有楼层或房间号,因此我们希望将其从输出中删除正在发送给签名。

使用相同的令牌,我们的广告结构现在将+1添加到所有电话号码的开头(即+1(XXX)XXX-XXXX),我们希望从所有签名中删除+1。

关于如何从AD中提取字符串,删除字符串之前/之后不需要的内容并将其根据需要输出到签名的任何建议?

我尝试了使用split,-split和replace的各种方法,并且无法获得字符串输出,只能获得类似于“ System.Object []”的输出

这就是我们要提供的地址:

$ADStreetAddress = $ADUser.streetaddress -Replace "Floor.*"

If ($ADStreetAddress -ne '') { 
       $FindText = "StreetAddress"
    $ReplaceText = $ADStreetAddress.ToString()
   }
   Else {
    $FindText = "StreetAddress"
    $ReplaceText = $DefaultAddress
    }

在上面的脚本之后,如果我输入$ ADStreetaddress,它将为我提供所需的输出,但是当我尝试运行脚本来替换文本时,它将用System.Output []而不是实际的字符串替换文本。正在尝试输出。预先感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

要删除+1,我将使用trim()

$TheirPhone.trim("+1 ")

将所有内容保留在Floor之前。尝试使用:

$TheirAddress.substring(0,$TheirAddress.IndexOf('Floor'))