sistema poner para obtener nombre msdos mostrar hora fecha cambiar batch bat archivo powershell

poner - ¿Cómo puedo reemplazar las nuevas líneas usando PowerShell?



obtener fecha cmd (4)

Con -Raw deberías obtener lo que esperas

Dado prueba.txt que contiene:

test message

Quiero terminar con:

testing a message

Creo que lo siguiente debería funcionar, pero no:

Get-Content test.txt |% {$_-replace "t`r`n", "ting`r`na "}

¿Cómo puedo encontrar y reemplazar donde lo que estoy encontrando contiene CRLF?


Puede usar "//r//n" también para la nueva línea en powershell . Lo he usado en la herramienta de reparación.

En mi caso, "/r/n" no funciona, así que probé "//r//n" como "/" este símbolo funciona como carácter de escape en powershell .


Según entiendo, Get-Content elimina TODAS las líneas nuevas / retornos de carro cuando pasa el archivo de texto a través de la canalización. Para hacer expresiones regulares multilínea, debes volver a combinar tu matriz de cuerdas en una cadena gigante. Yo hago algo como:

$text = [string]::Join("`n", (Get-Content test.txt)) [regex]::Replace($text, "t`n", "ting`na ", "Singleline")

Aclaración: ¡archivos pequeños solo gente! Por favor, no intente esto en su archivo de registro de 40 GB :)


Un CRLF es de dos caracteres, por supuesto, el CR y el LF. Sin embargo, `n consiste en ambos. Por ejemplo:

PS C:/> $x = "Hello >> World" PS C:/> $x Hello World PS C:/> $x.contains("`n") True PS C:/> $x.contains("`r") False PS C:/> $x.replace("o`nW","o There`nThe W") Hello There The World PS C:/>

Creo que estás teniendo problemas con la `r . Pude eliminar la `r de tu ejemplo, usar `n , y funcionó. Por supuesto, no sé exactamente cómo generó la secuencia original, así que no sé qué hay allí.