¿Cómo romper líneas en PowerShell?

82

Soy [ completamente nuevo en PowerShell y ] estoy concatenando una cadena en un bucle, si ocurre una condición especial debo insertar un salto de línea ... ¿cómo puedo hacer esto?

Básicamente buscando el equivalente de \n.

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

Hasta ahora lo he intentado

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

Respuestas:

134

Prueba "`n"con comillas dobles. ( no comillas simples '`n')

Para obtener una lista completa de los caracteres que se escapan, consulte:

Help about_Escape_character

El código debe ser

$str += "`n"
Nunca jamás
fuente
Gracias pero no funciona. me daThe term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322
1
Los ejemplos en Help about_Escape_characterme ayudaron a resolver el problema. Editando respuesta para mostrar la solución
user454322
Entonces, para dividir una cadena de $filestobackup = $files.split("`n");
varias líneas
9

Creo que lo encontré. Todo lo que tienes que hacer es escribir "` n "(¡CON LAS COMITAS!)

¡Gracias!

Nuevo en PowerShell
fuente
2

En caso de que alguien más se encuentre con esto, para aclarar la respuesta `n es acento grave n, no una sola marca n

SQLMac
fuente
4
En realidad, es un "acento grave". Una tilde es ~
elkirkmo
1
Gracias por la aclaración.
SQLMac
No, ǹ es un acento grave ny `n es una tilde n. No estoy seguro de por qué piensa lo contrario. Por favor publique una referencia si me falta algo.
Chris Broski
1

También puede usar:

Write-Host "";

O, para ponerlo en términos de su pregunta específica:

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

Si escapar no funciona, puede intentar esto:

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

Simplemente no agrega nada, pero como Out-String, lo que crea una nueva línea.

Nano Miratus
fuente