Reemplazar texto de archivo en secuencia de Batch comandos

MD Aminul Islam 13 septiembre 2023
  1. Utilizar un Script por Lotes para reemplazar texto en el archivo
  2. Utilizar Windows PowerShell para reemplazar texto en el archivo
  3. Conclusión
Reemplazar texto de archivo en secuencia de Batch comandos

En este artículo, vamos a presentar algunos métodos a través de los cuales puedes reemplazar textos en un archivo. Veremos dos formas diferentes.

Nuestro primer método consiste únicamente en un script por lotes para realizar la tarea, y el segundo método proporciona la solución a través de Windows PowerShell.

Consideremos un escenario en el que estás trabajando en un servidor de Windows con acceso externo a internet restringido y limitaciones para instalar software.

Se te ha asignado la tarea de eliminar todas las ocurrencias de datos específicos en archivos TXT. Imagina hacer esto manualmente para archivos grandes, sería tanto tedioso como ineficiente.

Aquí es donde entran en juego nuestros métodos, permitiéndote alcanzar tu objetivo utilizando solo las herramientas disponibles en la máquina de Windows: CMD y PowerShell.

Supongamos que tenemos un archivo de texto con el siguiente contenido.

Test.txt:

This is text that is saved in a text file. This is an update. ,,,,,,,,,,,,

Vamos a reemplazar estos comandos con caracteres vacíos.

Utilizar un Script por Lotes para reemplazar texto en el archivo

Script por Lotes:

@echo off
FOR /f "tokens=*" %%s IN (Test.txt) DO (
  SET Texts=%%s
)
set Texts=%Texts:,=%

FOR /F "tokens=* delims=" %%x IN (Test.txt) DO SET text=%%x
ECHO %Texts% > "G:\BATCH\Test.txt" :: the path location of the txt file

Primero leemos el archivo utilizando la línea FOR /f "tokens=*" %%s IN (Test.txt) DO ( y luego, a través de la línea SET Texts=%%s, inicializamos una variable de cadena con los textos del archivo. Reemplazamos cada coma con un carácter vacío a través de la línea set Texts=%Texts:,=%.

Finalmente, volvemos a poner el texto en el archivo. Cuando ejecutamos el código anterior, veremos los cambios en el contenido de nuestro archivo a continuación.

This is text that is saved in a text file. This is an update.

Utilizar Windows PowerShell para reemplazar texto en el archivo

Este método también proporcionará el mismo resultado que nuestro método anterior. En este método, utilizamos PowerShell en nuestro script por lotes. El código de ejemplo para este método se verá así,

powershell -Command "(gc Test.txt) -replace ',', '' | Out-File -encoding ASCII Test.txt"

Cuando ejecutamos el código, veremos los cambios en el contenido de nuestro archivo a continuación.

This is text that is saved in a text file. This is an update.

En este método, aprovechamos el operador -replace de PowerShell para reemplazar texto. El comando lee el contenido del archivo (Test.txt), reemplaza las comas con caracteres vacíos y luego guarda el contenido actualizado en Test.txt.

Conclusión

Al adoptar la programación por lotes y Windows PowerShell, te capacitas para automatizar eficientemente las tareas de reemplazo de texto.

Estos métodos son herramientas valiosas en escenarios donde la edición manual es poco práctica debido al tamaño del archivo o a un acceso restringido.

Ya sea que estés navegando en archivos grandes o trabajando en entornos limitados, estas técnicas ofrecen soluciones eficientes.

A través del poder de la programación por lotes y PowerShell, puedes mejorar tu productividad y eficiencia al manejar desafíos de reemplazo de texto.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - Batch Script