Reemplazar cadenas en varios archivos en PowerShell [2 formas]
💡 TL;DR Para reemplazar String en varios archivos, use
Get-ChildItempara obtener todos los archivos requeridos e itere sobre los archivos usandoPara cada objeto. En cada iteración, lea el contenido del archivo usando el cmdletGet-Content, use el métodoreplace()para reemplazar el texto ySet-Contentpara 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-ChildItempara obtener todos los archivos necesarios en$DirPath. Puede utilizar la opción-includepara seleccionar solo una extensión de archivo particular. - Utilice
ForEach-Objectpara iterar sobre cada elemento. - En cada iteración, utilice el cmdlet
Get-Contentpara leer el contenido del archivo.Get-Contentlee 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étodoreplace()devuelve una nueva cadena y reemplaza cada aparición de texto antiguo con texto nuevo. - Por último, utilice el cmdlet
Set-Contentpara 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-ChildItempara obtener todos los archivos necesarios en$DirPath. Puede usar la opción -incluir para seleccionar solo una extensión de archivo particular. - Utilice
ForEach-Objectpara iterar sobre cada elemento. - En cada iteración, utilice el cmdlet
Get-Contentpara leer el contenido del archivo.Get-Contentlee el contenido del elemento en una ubicación particular especificada por la ruta. - Utilice el operador
replacepara reemplazar el texto antiguo con texto nuevo. El operadorreplacedevuelve una nueva cadena y reemplaza cada aparición de texto antiguo con texto nuevo. - Por último, utilice el cmdlet
Set-Contentpara 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.