如果我运行以下代码,$ SRN可以写为输出或添加到另一个变量,但尝试包含另一个变量或常规文本会导致它从行的开头被覆盖。我假设它与我最初分配$ autocode和$ SRN的方式有关,但无法分辨它正在尝试做什么。
# Load the property set to allow us to get to the email body.
$item.load($psPropertySet) # Load the data.
$bod = ($item.Body.Text -creplace '(?m)^\s*\r?\n','') -split "\n" # Get the body text, remove blank lines, split on line breaks to create an array (otherwise it is a single string).
$autocode = $bod[4].split('-')[2] # Get line 4 (should be Title), split on dash, look for 3rd element, this should contain our automation code.
$SRN = $bod[1] -replace 'ID: ','' # Get line 2 (should be ID), find and replace the preceding text.
# Skip processing if autocode does not match our list of handled ones.
if ($autocode -cin $autocodes)
{
write-host "$SRN $autocode"
write-host "$autocode $SRN"
write-host "$SRN test"
$var = "$SRN $autocode"
$var
}
代码导致这一点,你可以看到$ SRN是否不在行的开头就可以了。不确定额外空间来自哪里:
KRNE8385
KRNE SR1788385
test8385
KRNE8385
我希望看到这个:
SR1788385 KRNE
KRNE SR1788385
SR1788385 test
SR1788385 KRNE
答案 0 :(得分:1)
LotPings向我指出正确的路径,两个变量中仍然有“0D”或“\ r”。我的正则表达式替换只是在空行上删除它们,我只将数组拆分为“\ n”。将原始代码中的第3行更改为以下内容似乎已解决了该问题。第一次看到Format-Hex,但它似乎非常适合解决这些问题。
$bod = ($item.Body.Text -creplace '(?m)^\s*\r?\n','') -split "\r\n"