我们正在尝试向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中得到的是:一个长字符串,文件名用空格分隔。
在此先感谢您的帮助:-)
答案 0 :(得分:0)
您需要为数组中的每个项目添加一个换行符,在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
上进行了完美测试)
$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
让我知道这些方法是否对您有用!
答案 1 :(得分:0)
您发布的第一个解决方案是正确的解决方案! 非常感谢您的快速帮助。我已经尝试过类似的选择 `n ,但Teams不接受将其作为有效的换行符。
我欠你一杯啤酒:-)
真诚的
粗鲁