gpt4 book ai didi

parsing - 如何从 PowerShell 中的字符串中删除所有换行符?

转载 作者:行者123 更新时间:2023-12-01 07:14:45 25 4
gpt4 key购买 nike

这是我用来解析我的电子邮件的代码。如果它们匹配特定日期,我想将它们添加到其他电子邮件列表中,然后将其制作成一个平面文件:

outfile = "C:\Temp\emails.csv"
$olFolderInbox = 6
$ol = new-object -comobject "Outlook.Application"
$mapi = $ol.getnamespace("mapi")
$inbox = $mapi.GetDefaultFolder($olFolderInbox)
$msgs = $inbox.Folders.Item("root")
$list1 = @()
foreach($message in ($msgs.items))
{
if($message.ReceivedTime -gt $(get-date).adddays(-14))
{
$list1 += "$($message.Subject);$($message.ReceivedTime);$($message.Body.Replace("`n",", "))"
}
}
if(Test-Path $outfile)
{
Remove-Item $outfile
Add-Content $outfile $list1
}
else
{
Add-Content $outfile $list1
}

我遇到的问题是 $message.Body.Replace("`n",", ") 上的替换语句实际上并没有删除换行符,并且文件没有被正确创建。有没有办法确认正文部分的全部内容变成一行?

我已经确认 $message.body object 是一个字符串,所以我不确定为什么这不起作用。

最佳答案

评论者指出返回 `r 可能是 special character应单独更换。猜测这可以通过 .replace() 方法和一些正则表达式来完成。
或者更简单(而且我承认很笨拙)在 $list1 += 行之前使用另一个变量,例如:

$bod = $message.body -replace "`n",", " -replace "`r",", "

矫枉过正,但这里有一个从头开始的小例子。我建议您添加 $y 以便更轻松地操作消息正文。
$x = new-object -type psObject
$x | add-member memburr1 -membertype noteproperty -value "no trouble here"
$x | add-member memburr2 -membertype noteproperty -value "uh `n oh `r spaghettio"

$y = $x.memburr2 -replace "`n",", " -replace "`r",", "

$z = @()
$z += "$($x.memburr1);$y"

如果这没有帮助,我会很好奇输出中有问题的换行符前后出现的内容。

编辑:或者使用 .replace() 方法两次:
$x.memburr2.replace("`n",", ").replace("`r",", ")

关于parsing - 如何从 PowerShell 中的字符串中删除所有换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592727/

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