繁体   English   中英

将带有换行符的文件列表输出到Microsoft Teams

[英]Outputting file list with linebreaks to Microsoft Teams

我们正在尝试向Microsoft Teams的技术支持部门获取具有特定过滤条件的文件列表。

从技术上讲,它可以工作,但是输出混乱了。 由于某种原因,我无法将文件作为团队列表获取。 相反,所有文件都只是粘贴在一个大字符串中,文件名之间带有空格。

我尝试了一些格式设置选项,但无法找到更接近解决方案的地方。

$Limit = (Get-Date).AddMinutes(-15)
$Path = "C:\Users\<username>\Desktop"
$Extension = "*.*"

$Results = @()
$Results += Get-ChildItem -Path $Path -Filter $Extension -Recurse -Force | Where-Object {$_.CreationTime -lt $Limit -and ! $_.PSIsContainer -and $_.Extension -ne ".db"} | Select-Object Name -ExpandProperty Name | Sort-Object Name

Invoke-RestMethod -Method Post -ContentType "Application/Json" -Body "{'text': '$Results'}" -Uri https://outlook.office.com/webhook/<deleted for this example...> | Out-Null

我想在Teams中得到的是:每行一个文件名的列表现在在Teams中得到的是:一个长字符串,文件名用空格分隔。

预先感谢您的任何帮助 :-)

您需要为数组中的每个项目添加一个换行符,在Teams中,我认为这是3个空格和\\ n

看起来像这样:

$Limit = (Get-Date).AddMinutes(-15)
$Path = "C:\Users\<username>\Desktop"
$Extension = "*.*"

$Results = @()
$Results += Get-ChildItem -Path $Path -Filter $Extension -Recurse -Force | Where-Object {$_.CreationTime -lt $Limit -and ! $_.PSIsContainer -and $_.Extension -ne ".db"} | Select-Object Name -ExpandProperty Name | Sort-Object Name
$Results = $Results | Foreach-Object {"$_   \n"}

Invoke-RestMethod -Method Post -ContentType "Application/Json" -Body "{'text': '$Results'}" -Uri https://outlook.office.com/webhook/<deleted for this example...> | Out-Null

如果这样不起作用,则可能需要遍历数组并将<br>添加到每个对象的末尾,但是您需要添加<pre></pre>以应用HTML格式。

看起来像这样:(我使用Send-MailMessage -BodyAsHtml进行了测试Send-MailMessage -BodyAsHtml完美地工作了)

$Limit = (Get-Date).AddMinutes(-15)
$Path = "C:\Users\<username>\Desktop"
$Extension = "*.*"

$Results = @()
$Results += Get-ChildItem -Path $Path -Filter $Extension -Recurse -Force | Where-Object {$_.CreationTime -lt $Limit -and ! $_.PSIsContainer -and $_.Extension -ne ".db"} | Select-Object Name -ExpandProperty Name | Sort-Object Name
$Results = $Results | Foreach-Object {"$_<br>"}

Invoke-RestMethod -Method Post -ContentType "Application/Json" -Body "{'text': '<pre>$Results</pre>'}" -Uri https://outlook.office.com/webhook/<deleted for this example...> | Out-Null

让我知道这些方法是否适合您!

您发布的第一个解决方案是正确的解决方案! 非常感谢您的快速帮助。 我已经尝试使用`n进行类似的选择,但是Teams不接受将其作为有效的换行符。

我欠你一杯啤酒:-)
诚挚的,Ruud

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM