Acciones sobre archivos de texto. [Batch]

Iniciado por leogtz, 24 Enero 2009, 00:30 AM

0 Miembros y 1 Visitante están viendo este tema.

DekerMD

Buenas. disculpa me podrías ayudar.
ya intente de todo y nada :(
se podria hacer un batch para que ponga un (-) en los espacios.
Ejemplo: Mi madre se quiere ir?
y ocupo que quede ASI.
Mi - madre - se - quiere - ir?
Me ayudaría bastante con un batch ya que aun me faltan mas de 5,mil frases y creeame es muy aburrido :( de Antemano Gracias.

Eleкtro

#341
Cita de: DekerMD en  1 Mayo 2018, 20:00 PM
Me ayudaría bastante con un batch ya que aun me faltan mas de 5,mil frases y creeame es muy aburrido :( de Antemano Gracias.

Con una herramienta tan limitado como es Batch no puedes llevar a cabo ese tipo de reemplazamiento de caracteres de forma eficiente, sí puedes reemplazar " " por " - " multiples veces en una cadena de texto, pero eso implica que si hay dos espacios en blanco (o más) "  " entonces quedaría así: " -  - " y no puedes hacer nada por evitarlo ya que no puedes capturar/identificar todos los espacios en blanco de una cadena de texto en Batch. Como mucho podrías usar un búcle FOR para delimitar las palabras (ignorar los espacios en blanco y en su lugar añadir lo que quieras entre cada palabra delimitada) pero esto además de ser una solución engorrosa y un código horriblemente lento (en comparación con cualquier otro lenguaje de programación de hoy en día) debido a la naturaleza del procesamiento por lotes o Batch, también implicaría ciertos problemas innecesarios en el tratamiento de las cadenas de texto.

Mi recomendación: simplemente evita usar el anticuado y limitado Batch para cualquier cosa por que realmente no vale la pena usarlo para ningún tipo de tarea pudiendo usar cualquier otro lenguaje, en este caso cualquier otro lenguaje que soporte reemplazamiento de caracteres mediante el uso de expresiones regulares como por ejemplo Visual Basic Script o Powershell (por nombrar los que están soportados por Windows sin necesidad de instalar nada más), o en su defecto sencillamente puedes usar cualquier editor de texto avanzado como por ejemplo Sublime Text o Notepad++...

...en dos segundos tendrías esas 5.000 frases reemplazadas con la siguiente expresión regular de captura:
+

Y la siguiente expresión de reemplazamiento:
-

Saludos.








eaacprotecto

#342
@leongtz

Hola, sobre este tema: Remover lineas en blanco de un archivo de texto :
Código:
@echo off
echo Mi archivo con lineas en blanco :
type "file.txt"
for /f %%x in ('type "file.txt"') do (
echo %%x >> file2.txt
)
echo.
echo Mi archivo sin lineas en blanco :
type file2.txt

Tengo la necesidad de 1. Trabajar con VARIOS archivos 2. Sustituir el caracter "\" por "/" (dentro del archivo). 3. Por lo tanto, que cada archivo modificado se sobre escriba (una vez hecha tal modificación).

ej. ECATEPEC 3_1_1_00001838-2817.IDX
     ECATEPEC 3_1_1_00001838-2818.IDX
     ECATEPEC 3_1_1_00001838-2819.IDX
     etc.

Yo he modificado el script sugerido de esta manera:

@echo off
pause
echo Mi archivo con lineas en blanco :
type "*.idx"
for /f %%x in ('type "*.idx"') do (
echo %%x >> file2.txt
)
echo
pause
echo Mi archivo sin lineas en blanco :
type file2.txt

Por lo que se junta la información de cada archivo en UNO SOLO, que en este caso es el file2.txt

Ojalá puedan ayudarme, ya que se trata de más de 10,000 archivos. Muchas gracias!

Puchu

Buenos días,

soy nuevo en el foro pero llevo más de 10 años visitándolo para mis dudas. Nunca antes he tenido que escribir para mis dudas, pero la verdad, no encuentro solución a mi pequeño problema.

Tengo este texto en un archivo .inf

07 (Este número me indica cuántas líneas hay en cada .inf)
100101 Bienvenida (40)* (Estas líneas son las que quiero modificar)
000102 Normas (08)*
100103 Plaza (15)*
000104 Iglesia (57)
100105 Av.España (25)*
000106 Correos (12)
000107 Final del dia (05)

Tengo una tarea repetitiva de que tengo más de 20 archivos .inf, con textos con este formato y lo único que le debo cambiar es:

A las líneas que empiecen con 1, cambiarlos por un 0. En los 20 .inf que tengo, quiero acceder, ver si empiezan con un 1 y cambiarlo por un 0.

¿Una ayudita, por favor?

¡Mil gracias!

drewdty

buenas soy nuevo en este foro
he visto que teneis un monton de ejemplos de batch
no he encontrado el que necesito
si me pudierais ayudar a crealo seria de agradecer
necesitaria modificar o cambiar el nombre terminado en .txt de dentro del archivo
ejemplo: archivo1.txt
en el interior
input" dev/sed/miguel.txt"
cambiar miguel.txt por archivo1.txt
seria para hacerlo en lote
como deberia de empezarlo
asignado el nombre a una variable?
como asignar la variable para que substituya tal palabra
soy nuevo en esto
gracias

JUANK0926

Hola,

Muchas gracias por la gran cantidad de información que compartes, tengo una duda..

al utilizar este código:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
set linea=!linea:Perl=C!
call :show !linea!
)
goto:eof
:show
echo %* >> out.txt
goto:eof

al momento de reemplazar la palabra me esta creando una copia justo debajo de la linea y quisiera que esto no se presentara.. que solo la reemplace y guarde. ejemplo de como queda:

Test -----> esta es la palabra a reemplazar y cuando realizo el proceso queda una copia


Test --> palabra existente
Test --> palabra que se crea automaticamente


me ayudaría muchísimo tu ayuda

gracias

alemandio

amigos buenas noches, quería de su ayuda, tengo un problema con todos los archivos de DD, se agrego  la extension .zwer y no permite abrir ningun archivo, lo puedo eliminar manualmente uno a uno pero tengo muchos gigas.
un ejemplo 20161027_142515279_iOS.jpg.zwer

agradecere su ayuda.