Búsqueda de sitios web

Reemplazar cadenas en varios archivos en PowerShell [2 formas]


💡 TL;DR Para reemplazar String en varios archivos, use Get-ChildItem para obtener todos los archivos requeridos e itere sobre los archivos usando Para cada objeto. En cada iteración, lea el contenido del archivo usando el cmdlet Get-Content, use el método replace() para reemplazar el texto y Set-Content para guardar el contenido de los archivos.
A continuación se muestra un ejemplo sencillo:

Digamos que desea reemplazar todos los espacios para subrayar en todos los archivos de texto en la carpeta C:\Users\Arpit\Desktop\powershell.

Reemplazar texto en varios archivos en PowerShell:

$DirPath = "C:\Users\Arpit\Desktop\powershell"
 get-childitem $DirPath -recurse -include *.txt |
ForEach-Object {
 (Get-Content $_).replace(" ","_") |
 Set-Content $_
 }

Reemplazar cadena en varios archivos en PowerShell

Hay dos formas diferentes de reemplazar cadenas en varios archivos en PowerShell.

Usando el método reemplazar() con Get-ChildItem

Estos son los pasos para reemplazar String en varios archivos usando el método replace().

  • Almacene la ruta del archivo en la variable $DirPath
  • Utilice el cmdlet Get-ChildItem para obtener todos los archivos necesarios en $DirPath. Puede utilizar la opción -include para seleccionar solo una extensión de archivo particular.
  • Utilice ForEach-Object para iterar sobre cada elemento.
  • En cada iteración, utilice el cmdlet Get-Content para leer el contenido del archivo. Get-Content lee el contenido del elemento en una ubicación particular especificada por la ruta.
  • Utilice el método replace() para reemplazar el texto antiguo con texto nuevo. El método replace() devuelve una nueva cadena y reemplaza cada aparición de texto antiguo con texto nuevo.
  • Por último, utilice el cmdlet Set-Content para reemplazar el contenido de todos los archivos.

Reemplace texto en varios archivos en PowerShell usando el método de reemplazo:

$DirPath = "C:\Users\Arpit\Desktop\powershell"
 get-childitem $DirPath -recurse -include *.txt |
ForEach-Object {
 (Get-Content $_).replace(" ","_") |
 Set-Content $_
 }

Usando el operador de reemplazo con Get-ChildItem

La mayoría de los pasos serán similares al método anterior. Usaremos el operador de reemplazo en lugar del método replace() para reemplazar contenido en múltiples archivos.

Estos son los pasos para reemplazar String en varios archivos usando el operador replace.

  • Almacene la ruta del archivo en la variable $DirPath
  • Utilice el cmdlet Get-ChildItem para obtener todos los archivos necesarios en $DirPath. Puede usar la opción -incluir para seleccionar solo una extensión de archivo particular.
  • Utilice ForEach-Object para iterar sobre cada elemento.
  • En cada iteración, utilice el cmdlet Get-Content para leer el contenido del archivo. Get-Content lee el contenido del elemento en una ubicación particular especificada por la ruta.
  • Utilice el operador replace para reemplazar el texto antiguo con texto nuevo. El operador replace devuelve una nueva cadena y reemplaza cada aparición de texto antiguo con texto nuevo.
  • Por último, utilice el cmdlet Set-Content para reemplazar el contenido de todos los archivos.

Reemplace texto en varios archivos en PowerShell usando el método de reemplazo:

$DirPath = "C:\Users\Arpit\Desktop\powershell"
 get-childitem $DirPath -recurse -include *.txt |
ForEach-Object {
 (Get-Content $_) -replace " ","_" |
 Set-Content $_
 }

Se trata de cómo reemplazar String en varios archivos en PowerShell.

Artículos relacionados