Powershell脚本,从CSV加载?

时间:2018-02-05 12:36:24

标签: powershell outlook office365

所以我得到了这段代码:

$MailboxName = "email@domain.com"
$MessageId = "<54bb33d72d7ed2b1928e9fb9edfa0ca2@swift.generated>"
$TargetFolder = "\Inbox\random"
Connect-EXRMailbox -MailboxName $MailboxName
Find-EXRMessageFromMessageId -MailboxName $MailboxName -MessageId $MessageId | ForEach-Object{
    Move-EXRMessage -MailboxName $MailboxName -ItemURI $_.ItemRESTURI -TargetFolderPath $TargetFolder
    Write-Host ("Moved Message " + $_.Subject + " to " + $TargetFolder)
}

它工作正常,并会移动一个符合messageID的电子邮件

但我现在正试图让它看起来像一个文件的.csv文件。在csv文件中有很多messageID。

如果我使用此代码:

import-csv d:\test.csv | Select MessageId 
$MailboxName = "email@domain.com"
$MessageId = $_.MessageId 
$TargetFolder = "\indbakke\Hotels" 
Connect-EXRMailbox -MailboxName $MailboxName
Find-EXRMessageFromMessageId -MailboxName $MailboxName -MessageId $MessageId | ForEach-Object{
    Move-EXRMessage -MailboxName $MailboxName -ItemURI $_.ItemRESTURI -TargetFolderPath $TargetFolder
    Write-Host ("Moved Message " + $_.Subject + " to " + $TargetFolder)
}

然后它只会打印.csv文件中的内容,

任何人都可以帮助我,我如何让我的小脚本使用CSV文件,所以它从csv文件中获取messageID。 ?

1 个答案:

答案 0 :(得分:1)

您需要从导入的csv迭代messageId s。在您的代码中,您只需导入文件,就是这样。 $MessageId是空的。

$messageIds = Import-Csv -Path d:\test.csv |
    Select -expandproperty MessageId

ForEach ($MessageId in $messageIds)
{
...
}