CR LF yangi qatorlari bilan Powershell-da bitta qo'ng'iroqda konsol va jurnal fayliga qanday yozishim mumkin

Menda powershell skripti bor va men konsolga yozishni va bitta qo'ng'iroq bilan jurnal fayliga yozishni xohlayman.

Men buni qilardim ...

Start-Transcript -Path $TargetDir\Log.log
Write-Host "Stuff"

... bu ajoyib ishlaydi, faqat u yaratadigan yangi qatorlar LF, ya'ni mening jurnallarim bloknotdan tashqari yerdagi barcha matn muharrirlarida ajoyib ko'rinadi.

Buning uchun menda nima bor ...

function global:Write-Notepad
(
    [string] $Message,
    [string] $ForegroundColor = 'Gray'
)
{
    Write-Host "$Message`r" -ForegroundColor $ForegroundColor
}

...har bir xabarning oxiriga CR yozadi, lekin bu kabi satrlarni yozmaydi...

&$ACommand | Write-Notepad

Men quvur operatori qanday sintaksisni kutayotganiga amin emasman, lekin yordam uchun juda minnatdorman.


person user467384    schedule 12.11.2010    source manba


Javoblar (2)


Buni sinab ko'ring:

& $ACommand | Tee-Object -FilePath $TargetDir\Log.log | Write-Host

Tee-Object quvur liniyasi ob'ektlarining nusxasini fayl yoki o'zgaruvchiga yuboradi va bir vaqtning o'zida chiqaradi.

person JasonMArcher    schedule 13.11.2010

Mana men qaror qilgan yechim ...

# This method adds a CR character before the newline that Write-Host generates.
# This is necesary, because notepad is the only text editor in the world that
# doesn't recognize LF newlines, but needs CR LF newlines.
function global:Write-Notepad
(
    [string] $Message,
    [string] $ForegroundColor = 'Gray'
)
{
    Process
    {
        if($_){ Write-Host "$_`r" }
    }
    End
    {
        if($Message){ Write-Host "$Message`r" -ForegroundColor $ForegroundColor }
    }
}
person user467384    schedule 13.11.2010