Wie unterbreche ich Linien in PowerShell?

82

Ich bin [ völlig neu in PowerShell und ] verkette eine Zeichenfolge in einer Schleife. Wenn eine besondere Bedingung auftritt, sollte ich einen Zeilenumbruch einfügen. Wie kann ich das tun?

Grundsätzlich auf der Suche nach dem Äquivalent von \n.

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

Bisher habe ich es versucht

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

Antworten:

134

Versuchen Sie es "`n"mit doppelten Anführungszeichen. ( keine einfachen Anführungszeichen '`n')

Eine vollständige Liste der entkommenen Zeichen finden Sie unter:

Help about_Escape_character

Der Code sollte sein

$str += "`n"
Niemals
quelle
Danke, funktioniert aber nicht. es gibt mirThe term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322
1
Die Beispiele in Help about_Escape_characterhaben mir geholfen, das Problem herauszufinden. Antwort
bearbeiten
$filestobackup = $files.split("`n");
Um
9

Ich glaube ich habe es gefunden. Alles was Sie tun müssen, ist "` n "einzugeben (MIT DEN ANGEBOTSMARKEN!)

Vielen Dank!

Neu in PowerShell
quelle
2

Nur für den Fall, dass jemand anderes darauf stößt, um die Antwort zu klären: `n ist ein schwerwiegender Akzent n, kein einzelnes Häkchen n

SQLMac
quelle
4
Es ist eigentlich ein "schwerer Akzent". Eine Tilde ist ~
elkirkmo
1
Danke für die Klarstellung.
SQLMac
Nein, ǹ ist ein schwerwiegender Akzent n und `n ist ein Backtick n. Ich bin mir nicht sicher, warum du anders denkst. Bitte posten Sie eine Referenz, wenn mir etwas fehlt.
Chris Broski
1

Sie können auch einfach verwenden:

Write-Host "";

Oder, um es in Bezug auf Ihre spezifische Frage auszudrücken:

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

Wenn das Entkommen nicht funktioniert, können Sie Folgendes versuchen:

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

Es fügt nur nichts hinzu, sondern als Out-String, was eine neue Linie erzeugt.

Nano Miratus
quelle