PowerShell Out-File записывает неверные данные - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу поместить результат моего скрипта в новый файл, для которого я использую Out-File.

Моя проблема в том, что когда я запускаю скрипт, у меня в терминале другой результат, чем у меня внутри моего нового письменного файла. Он должен быть таким же, как и внутри моего терминала.

for($i = 0; $i -lt $outVar.Length; $i++) {
    $testOut = $outVar[$i].Line.Split("(")[0]
    $testIn  = $inVar[$i].Line.Split("(")[0]
    $testOut + $testIn
    $ConvertedStart = [datetime]::Parse($testOut)
    $ConvertedEnd = [datetime]::Parse($testIn)
    $loggedTime = New-TimeSpan -Start $ConvertedStart -End $ConvertedEnd
   # $loggedTime.GetType();
    $loggedTime | Out-File -FilePath "C:\Users\**\desktop\LDorado-LicenseTime.txt" -Append
    Write-Host "Licence got used for "  $loggedTime 

}

В моем терминале я вижу правильный журнал, например: Лицензия была использована для 00:07:14.

Как видите, я пытаюсь записать переменную $ loggedTime в новый файл, и эта переменная содержит значения времени, такие как 00:07:14, 00:03:34 и т. Д.

Мой файл создается и также заполняется, но данные выглядят так:

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 36
Milliseconds      : 0
Ticks             : 2160000000
TotalDays         : 0,0025
TotalHours        : 0,06
TotalMinutes      : 3,6
TotalSeconds      : 216
TotalMilliseconds : 216000





Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 36
Milliseconds      : 0
Ticks             : 2160000000
TotalDays         : 0,0025
TotalHours        : 0,06
TotalMinutes      : 3,6
TotalSeconds      : 216
TotalMilliseconds : 216000





Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 36
Milliseconds      : 0
Ticks             : 2160000000
TotalDays         : 0,0025
TotalHours        : 0,06
TotalMinutes      : 3,6
TotalSeconds      : 216
TotalMilliseconds : 216000

Я думаю, это потому, что тип данных может быть временным интервалом? Но также мне интересно, почему он отличается от журнала терминала, потому что переменная содержит только упомянутые значения (00:07:14, 00:03:34 ...).

РЕДАКТИРОВАТЬ: Хорошо, поэтому я заметил, что запись -Хост на самом деле выводит время, например, 00:07:14, но без него оно выглядит как данные, которые записываются в файл .. Так что write-host делает некоторое переформатирование.

1 Ответ

0 голосов
/ 03 апреля 2020

Хорошо, поэтому я исправил это сам. Кажется, что Write-Host переформатирует выводимые данные.

Помещая .ToString() в мою $loggedTime переменную, я фактически получаю желаемый результат.

$loggedTime.ToString() | Out-File -FilePath "C:\Users\**\desktop\LDorado-LicenseTime.txt" -Append
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...