resolver101
resolver101

Reputation: 2255

powershell writing to a log file

I've written the code below which works fine apart from one of the variables is over 200 characters and goes onto the next line messing the layout up. Any suggestions on a better layout so if one of the variables is long, it still retains structure?

$WriteLog = $null 
$WriteLog = @()
$WriteLog +="Here is some stuff:                $stuff1"
$WriteLog +="Here is some stuff:                $stuff2"
$WriteLog +="Here is some stuff:                $stuff3"
$WriteLog +="Here is some stuff:                $stuff4"
$WriteLog +="Here is some stuff:                $stuff5"
$WriteLog +="Here is some stuff:                $stuff6"
Out-File -InputObject $WriteLog -Append -NoClobber -FilePath "$env:SystemDrive\somestuff\somestuff.txt"

Example output :

"Here is some stuff:                    stuff1"
"Here is some stuff:            stuff2"  
"Here is some stuff:                Heres a lot of stuff
stuff3, stuff3, stuff3, stuff3,  stuff3, stuff3" 
"Here is some stuff:            stuff4"  
"Here is some stuff:                    stuff5"
"Here is some stuff:                    stuff6"

Upvotes: 0

Views: 1535

Answers (2)

Jeffery Hicks
Jeffery Hicks

Reputation: 943

Out-File has a -Width parameter that might help. Or can you format the long variable as a here string?

Upvotes: 1

stej
stej

Reputation: 29479

I would use formatting if you are not sure (I hope I understand your problem). See

'{0,5} -f 5
#vs.
'{0,5} -f 1115

Then..

$WriteLog = $stuff1, $stuff2, $stuff3, $stuff4, $stuff5, $stuff6 | 
               Foreach-Object { "Here is some stuff:{0,20}" -f $_ }
$WriteLog = $WriteLog -join "`n"

Upvotes: 1

Related Questions