Ваш код кажется мне хорошим, за исключением одного искаженного утверждения.
PowerShell, как и большинство языков сценариев, по умолчанию будет выполнять команды / операторы в вашем сценарии сверху вниз.
Таким образом, ваш Write-Host
будет выполнен только после завершения предыдущей команды.
Что касается оператора "искаженного представления", вы, возможно, хотели использовать Read-Host
, чтобы пользователь выбрал мягкое удаление вашей последнейпоиск. Поэтому после небольших исправлений ваш код выглядит следующим образом:
#1
$ComplianceSearchJob = Start-Job -ScriptBlock {
ShowSearchResults
Write-Host "You can find search results under the following path: C:\ExportResults" -ForegroundColor Green
# Invoke-Item "C:\ExportResults\SearchResults.csv"
}
#2
Receive-Job $ComplianceSearchJob -Keep
#3
$DeleteChoice = Read-Host "Do you want to delete found mails? (y/n): " -ForegroundColor Green
if($DeleteChoice -eq "Y"){ # case insensitive
New-ComplianceSearchAction -SearchName $FinalSearchName -PurgeType softdelete -Purge
}
РЕДАКТИРОВАТЬ 1: Добавлено Invoke-Item
, чтобы открыть файл C:\ExportResults\SearchResults.csv
в комментарии.
РЕДАКТИРОВАНИЕ 2: Используется Start-Job
, чтобы разрешить запуск в качестве фонового процесса.