Строка в значение - PullRequest
0 голосов
/ 01 мая 2020

Я создаю отчет для некоторых запросов на импорт почтового ящика, чтобы показать, сколько данных было загружено.

Файл Excel запрашивает все для отображения в ГБ.

Результаты моего скрипта дают мне текстовая строка, например ....

1,008 ГБ (1 082 195 968 байт)

Я знаю об использовании "-replace" ^ ([0-9.] +). + ',' $ 1 '", чтобы просто дать мне значение, но оно работает, если ответ в МБ, а не в ГБ

Я сделал это в ходе некоторого тестирования, и один из импортов показывает 533 ГБ вместо 0,533 ГБ

Как я могу просто извлечь байты из строки (1082195968), чтобы я мог преобразовать его в ГБ

Соответствующий фрагмент, если скрипт ...

$file = get-filename
$inputfile = import-csv $file 
foreach ($f in $inputfile)
{
$PSTImportstats = Get-MailboxImportRequest -Mailbox $f.mailbox | Get-MailboxImportRequestStatistics | where {$_.name -like 'Bison*'} |select name,targetalias,AzureBlobStorageAccountUri,TargetRootFolder,status, statusdetail,StartTimestamp,LastUpdateTimestamp,SyncStage,Suspend,LastSuccessfulSyncTimestamp,PercentComplete,OverallDuration,TotalSuspendedDuration,EstimatedTransferSize,EstimatedTransferItemCount,BadItemsEncountered,BytesTransferred

}

затем значения добавляются в лист Excel с использованием foreach l oop, который работает, но я получаю значения, как описано выше TIA

1 Ответ

1 голос
/ 01 мая 2020

В API данных Exchange для представления размеров файлов используется нечто, называемое ByteQuantifiedSize struct .

Этот тип данных может быть легко преобразован обратно в число байтов с помощью его ToBytes() метод :

$mboxReqStats = Get-MailboxImportRequest -Mailbox $f.mailbox | Get-MailboxImportRequestStatistics

$mboxReqStats |Select @{Name='EstimatedTransferSize'; Expression = {$_.EstimatedTransferSize.ToBytes()}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...