viejos una script por para fecha eliminar carpetas carpeta borrar batch bat archivos antiguos powershell text-files lines

powershell - eliminar - script para borrar archivos de una carpetas por fecha



eliminar líneas vacías de archivo de texto con PowerShell (9)

Encontré un buen forro aquí >> http://www.pixelchef.net/remove-empty-lines-file-powershell . Solo lo probé con varias líneas de espacios en blanco, incluyendo solo líneas nuevas, así como líneas con espacios, tabulaciones y combinaciones.

(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt

Vea el original para algunas notas sobre el código. Agradable :)

Sé que puedo usar:

gc c:/FileWithEmptyLines.txt | where {$_ -ne ""} > c:/FileWithNoEmptyLines.txt

para eliminar las líneas vacías. Pero, ¿cómo puedo eliminarlos con ''-rplace''?


Este fragmento de código de Randy Skretka funciona bien para mí, pero tuve el problema de que aún tenía una nueva línea al final del archivo.

(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt

Así que agregué finalmente esto:

$content = [System.IO.File]::ReadAllText("file.txt") $content = $content.Trim() [System.IO.File]::WriteAllText("file.txt", $content)


Esto elimina los espacios en blanco finales y las líneas en blanco de file.txt

PS C:/Users/> (gc file.txt) | Foreach {$_.TrimEnd()} | where {$_ -ne ""} | Set-Content file.txt


Esto eliminará las líneas vacías o líneas con solo caracteres de espacios en blanco (tabulaciones / espacios).

[IO.File]::ReadAllText("FileWithEmptyLines.txt") -replace ''/s+/r/n+'', "`r`n" | Out-File "c:/FileWithNoEmptyLines.txt"


No puede hacer el reemplazo, tiene que reemplazar ALGO con ALGO, y ninguno de los dos tiene ambos.


No se usa específicamente -replace , pero se obtiene el mismo efecto al analizar el contenido con -notmatch y regex.

(get-content ''c:/FileWithEmptyLines.txt'') -notmatch ''^/s*$'' > c:/FileWithNoEmptyLines.txt


Puede usar -match en lugar de -eq si también desea excluir archivos que solo contienen caracteres de espacio en blanco:

@(gc c:/FileWithEmptyLines.txt) -match ''/S'' | out-file c:/FileWithNoEmptyLines


Si realmente desea filtrar líneas en blanco de un archivo, puede intentar esto:

(gc $ source_file) .Trim () | ? {$ _. Longitud -gt 0}


(Get-Content c:/FileWithEmptyLines.txt) | Foreach { $_ -Replace "Old content", " New content" } | Set-Content c:/FileWithEmptyLines.txt;