Jak łamać linie w PowerShell?

83

Jestem [ zupełnie nowy w PowerShell i ] łączę ciąg w pętli, jeśli wystąpi specjalny warunek, powinienem wstawić podział wiersza ... jak mogę to zrobić?

Zasadniczo szukam odpowiednika \n.

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

Jak dotąd próbowałem

"\n" '\n' "\N" '\N' "\r" '\r' "\R" '\R' '`n' '`r' '-n' '-r' 
user454322
źródło

Odpowiedzi:

137

Spróbuj "`n"z podwójnymi cudzysłowami. ( nie pojedyncze cudzysłowy '`n')

Aby uzyskać pełną listę znaków ucieczki, zobacz:

Help about_Escape_character

Kod powinien być

$str += "`n"
Nigdy przenigdy
źródło
Dzięki, ale nie działa. to daje miThe term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322
1
Przykłady zawarte w Help about_Escape_characterartykule pomogły mi w rozwiązaniu problemu. Edytujesz odpowiedź, aby pokazać rozwiązanie
użytkownik454322
Aby podzielić ciąg wielowierszowy, użyj$filestobackup = $files.split("`n");
bgStack15
9

Myślę, że to znalazłem. Wszystko, co musisz zrobić, to wpisać „n” (Z CZYTNIKAMI!)

Dzięki!

Nowość w PowerShell
źródło
2

Na wypadek, gdyby ktoś inny się z tym spotkał, dla wyjaśnienia odpowiedzi `n to poważny akcent n, a nie pojedynczy tik n

SQLMac
źródło
4
Właściwie to „poważny akcent”.
Tylda
1
Dziękuję za wyjaśnienie.
SQLMac
Nie, ǹ to poważny akcent n, a `n to lewy klawisz n. Nie wiem, dlaczego myślisz inaczej. Jeśli czegoś brakuje, podaj referencje.
Chris Broski,
1

Możesz też po prostu użyć:

Write-Host "";

Lub, ujmując to w odniesieniu do konkretnego pytania:

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += Write-Host ""
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}
Płaski Cat
źródło
0

Jeśli ucieczka nie działa, możesz spróbować tego:

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

Po prostu nic nie dodaje, ale jako Out-String, co tworzy nową linię.

Nano Miratus
źródło
0

Jeśli używasz właśnie takiego kodu, jak ten poniżej, musisz umieścić tylko słaby akcent na końcu wiersza `.

docker run -d --name rabbitmq `
           -p 5672: 5672 ”
           -p 15672: 15672 ''
           --restart = zawsze `
           --hostname rabbitmq-master `
           -vc: \ docker \ rabbitmq \ data: / var / lib / rabbitmq `
           rabbitmq: najnowsze
Jener Garcia Menezes
źródło