user454322
user454322

Reputation: 7649

How to break lines in PowerShell?

I am [completely new to PowerShell and] concatenating a string in a loop, if a special condition occurs I should insert a line break...how can I do this?

Basically looking for the equivalent of \n.

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

So far I have tried

"\n" '\n' "\N" '\N' "\r" '\r' "\R" '\R' '`n' '`r' '-n' '-r' 

Upvotes: 111

Views: 291868

Answers (6)

Jener Garcia Menezes
Jener Garcia Menezes

Reputation: 646

If you are using just code like this below, you must put just a grave accent at the end of line `.

docker run -d --name rabbitmq `
           -p 5672:5672 `
           -p 15672:15672 `
           --restart=always `
           --hostname rabbitmq-master `
           -v c:\docker\rabbitmq\data:/var/lib/rabbitmq `
           rabbitmq:latest

Upvotes: 24

Rick Su
Rick Su

Reputation: 16440

Try "`n" with double quotes. (not single quotes '`n' )

For a complete list of escaping characters see:

Help about_Escape_character

The code should be

$str += "`n"

Upvotes: 174

SQLMac
SQLMac

Reputation: 59

Just in case someone else comes across this, to clarify the answer `n is grave accent n, not single tick n

Upvotes: 3

Flat Cat
Flat Cat

Reputation: 916

You can also just use:

Write-Host "";

Or, to put it in terms of your specific question:

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += Write-Host ""
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

Upvotes: 3

Nano Miratus
Nano Miratus

Reputation: 467

If escaping doesn't work, you can try this:

$str += $("" | Out-String)

It just adds nothing, but as an Out-String, which creates a new line.

Upvotes: 1

New to PowerShell
New to PowerShell

Reputation: 109

I think I found it. All you have to do is type in "`n" (WITH THE QUOTATION MARKS!)

Thanks!

Upvotes: 10

Related Questions