Почему командлет `Start-Transcript` вставляет новые строки, даже когда я использую Write-Host -NoNewline? - PullRequest
0 голосов
/ 06 февраля 2019

С Start-Transcript :

Командлет Start-Transcript создает запись всего сеанса PowerShell или его части в текстовый файл.Стенограмма включает в себя все команды, которые вводит пользователь, и все выходные данные, отображаемые на консоли.

Код

cls
$global:scriptPath = Split-Path $script:MyInvocation.MyCommand.Path
$global:scriptName = $global:scriptPathAndName.Replace(($global:scriptPath + "\"),"")
$global:scriptNameNoExt = $global:scriptName.Replace(".ps1","")

Start-Transcript -LiteralPath ($global:scriptPath + "\" + (get-date -f "yyyy-MM-dd_HH-mm-ss") + "_" + $global:scriptNameNoExt + ".log") 

foreach ($n in 1..3)
{
    write-host -NoNewline ("test line " + $n + " ")
}

write-host 

Stop-Transcript

Вывод на консоль - появляетсякак и ожидалось

Transcript started, output file is C:\temp\2019-02-06_07-13-43_test.log
test line 1 test line 2 test line 3 
Transcript stopped, output file is C:\temp\2019-02-06_07-13-43_test.log

Содержание стенограммы - откуда появились новые строки?

**********************
Windows PowerShell transcript start
Start time: 20190206071343
Username: xxx
RunAs User: xxx
Machine: xxx
Host Application: xxx
Process ID: 10092
PSVersion: 5.1.14409.1018
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.14409.1018
BuildVersion: 10.0.14409.1018
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is C:\temp\2019-02-06_07-13-43_test.log
test line 1
test line 2
test line 3

**********************
Windows PowerShell transcript end
End time: 20190206071343
**********************
...