Inserción de líneas en blanco en batch DOS
Resuelto
jopoiss
Mensajes publicados
104
Estado
Miembro
-
mimi -
mimi -
Hola,
Quisiera saber cómo se pueden insertar líneas vacías en un archivo de texto con un *.bat cuando se encuentra una palabra específica.
Es decir, quiero que mi archivo por lotes detecte una palabra específica y, cuando la vea, inserte una línea vacía a continuación. Preciso que la palabra que quiero detectar siempre estará al final de la línea.
Pienso que debería usar un if, pero soy principiante en este tema, así que necesito su ayuda.
Gracias de antemano.
Quisiera saber cómo se pueden insertar líneas vacías en un archivo de texto con un *.bat cuando se encuentra una palabra específica.
Es decir, quiero que mi archivo por lotes detecte una palabra específica y, cuando la vea, inserte una línea vacía a continuación. Preciso que la palabra que quiero detectar siempre estará al final de la línea.
Pienso que debería usar un if, pero soy principiante en este tema, así que necesito su ayuda.
Gracias de antemano.
Configuración: Windows XP Opera 9.27
6 respuestas
Hola,
Intenta esto, ¡espero que corresponda a tus expectativas!
Para activar el batch, introduces su nombre en el símbolo del sistema seguido de la cadena de caracteres a localizar.
--
Atentamente.
Cchristian.
Intenta esto, ¡espero que corresponda a tus expectativas!
Para activar el batch, introduces su nombre en el símbolo del sistema seguido de la cadena de caracteres a localizar.
@SETLOCAL ENABLEDELAYEDEXPANSION MODE CON COLS=150 LINES=90 ECHO OFF CLS ECHO. ECHO. ECHO %0. ECHO. FOR /L %%I IN (3,-1,0) DO @echo. ECHO _________________________________________________ ECHO. ECHO %0 %1 %2 El %DATE% a %TIME% ECHO _________________________________________________ ECHO. TITLE %0 BÚSQUEDA DE CADENAS DE CARACTERES E INSERCIÓN DE LÍNEAS BLANCAS CD C:\Documents and Settings\christian\Mis Documentos\BATCH_files rem archivo de entrada que contiene el texto a analizar. SET "testIN_txt=%USERNAME%-testIN.txt" rem archivos intermedios de trabajo SET "testINT_txt=%USERNAME%-testINT.txt" SET "testINTB_txt=%USERNAME%-testINTB.txt" IF EXIST %testINT_txt% ( ERASE /A %testINT_txt%) IF EXIST %testINTB_txt% ( ERASE /A %testINTB_txt%) rem Numeración de las líneas de texto del archivo en INPUT copiado. SET /A "calcul=10001" FOR /F "tokens=1-1* delims=$" %%I in ( %testIN_txt% ) DO ( ECHO !calcul!#%%I >> %testINT_txt% SET /A "calcul=calcul+10" ) rem -Búsqueda en el archivo de la cadena de caracteres a localizar SET "loc_chaine=%1" FOR /F "tokens=1,1 delims=:#" %%I IN ( ' TYPE %testINT_txt% ^| FINDSTR /I %loc_chaine%' ) DO ( SET /A "calcul=%%I+1" ECHO !calcul!# línea blanca a insertar >> %testINT_txt% ) rem -Ordenamiento de las líneas del archivo intermedio para fusionarlas. SORT /+1 /M 1024 /REC 256 %testINT_txt% /O %testINTB_txt% rem Deliberadamente no he recreado el archivo original testIN_txt por rem precaución, depende de ti decidir. ERASE /A %testINT_txt% rem -Eliminación de la parte genérica de cada línea (numeración rem y delimitador #) del nuevo archivo. FOR /F "tokens=2,3* delims=#" %%i in ( %testINTB_txt% ) DO ( rem visualización en pantalla para prueba ECHO %%i%%j %testINT_txt% ECHO %%i%%j >> %testINT_txt% )
--
Atentamente.
Cchristian.
Está bien, lo he encontrado por mi cuenta con un if involucrado en un for.
Pero gracias de todas formas por haber prestado atención a mi problema.
Buen día.
Pero gracias de todas formas por haber prestado atención a mi problema.
Buen día.