Autor
|
Tema: Acciones sobre archivos de texto. [Batch] (Leído 445,156 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
@MauriH Lo que hace el código es: por cada respuesta, procesa cada linea del archivo de preguntas y las va escribiendo a un archivo temporal (esto usando Batch se debe hacer así, linea por linea, es un lenguaje muy limitado) si en el proceso encuentra una coincidencia (una y no más), es decir, si encuentra una linea de respuesta que sea exáctamente IGUAL que la linea de la pregunta, entonces le agrega el sufijo y prefijo a la linea de la pregunta, de lo contrario escribe la linea tal cual al finalizar de procesar la respuesta, el archivo original se reemplaza por el archivo temporal para que el texto se actualice, y sigue con la siguiente respuesta, empezando a buscar desde la primera linea de preguntas. si tenemos estos prefijos: y un archivo respuestas con este contenido: y un archivo de preguntas con este otro contenido: Al ejecutar el code, este será el resultado: holaaadios a a holabadios b b holacadios c c Si no es eso lo que buscas, no lo he entendido bien, Saludos!
|
|
« Última modificación: 24 Septiembre 2013, 18:56 pm por EleKtro H@cker »
|
En línea
|
|
|
|
MauriH
Desconectado
Mensajes: 12
|
@EleKtro H@cker
Entiendo lo q dices, hice una modificación de mi anterior comentario, una muy pequeña, leelo y dime q opinas, gracias de nuevo.
Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
leelo y dime q opinas, gracias de nuevo. Pues para ser sincero opino que aunque estemos en un hilo de Batch, cualquier otro lenguaje es más viable para hacer esa tarea que Batch, así que en caso de hacerlo, lo haré en otro lenguaje. EDITO: Ya tengo la solución, pero lo hice en VB.NET así que te mando un privado para no desvirtuar el tema Batch. . Lo que hice básicamente fue : 1. Delimitar el texto de las preguntas (splitear) usando como caracter el caracter inicial de cada pregunta (#) y agregar los "bloques" a un Array, y así cada item del Array debería contener el título de la pregunta y las 5 respuestas (o las que sean) de dicha pregunta. 2. Realizar el mismo procedimiento con el archivo de respuestas, y asi, en cada item del Array debería haber una sola respuesta. 3. Luego símplemente hay que procesar el Array de respuestas de inicio a fín para hacer un reemplazamiento de string en el mismo índice de Item del Array de preguntas, ya que es óbvio que no va a haber dos respuestas iguales en la misma pregunta. Saludos!
|
|
« Última modificación: 25 Septiembre 2013, 21:37 pm por EleKtro H@cker »
|
En línea
|
|
|
|
gustavo2713
Desconectado
Mensajes: 1
|
Hola Leo: tengo un txt
000659 05203996601 6600011 1 001 010813 050960 61083359502 6611801 1 001 010813 050960 61083359502 6600011 1 001 010813 050005 61630799201 6604131 1 001 020813 050005 61630799201 6608651 1 001 020813
y necesito filtrar y separar por los número de la primera columana, de manera de obtener: 000659 05203996601 6600011 1 001 010813 ---> txt 1
050960 61083359502 6611801 1 001 010813 ---> txt 2 050960 61083359502 6600011 1 001 010813
050005 61630799201 6604131 1 001 020813 ---> txt 3 050005 61630799201 6608651 1 001 020813
|
|
|
En línea
|
|
|
|
MauriH
Desconectado
Mensajes: 12
|
Ayuda, tengo una consulta, por favor,
Como podría hacer con un batch reemplazar una palabra por una secuencia de números, por ejemplo si quiero reemplazar la palabra "amigo":
Texto de entrada:
texto texto texto amigo texto y más texto texto amigo texto y más textoamigo amigotexto y más texto.
Salida:
texto texto texto 0001 texto y más texto texto 0002 texto y más texto0003 0004texto y más texto.
Gracias, Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Si sólamente se trata de modificar UNA palabra, entonces lo más sencillo es partir el string en un array y hacer un reemplazamiento de string con las cadenas que coincidan, cada uno de los items del array sólamente contendrá una palabra.
Si se quiere modificar más de una palabra entonces yo usaría expresiones regulares.
Recordemos que para hacer la secuencia numérica hay que manipular una variable de tipo String donde deberiamos agregarle "X" cantidad de ceros a la izquierda (Ej: "0001").
Esto es facil de hacer, pero no recomiendo llevar esto a cabo usando Batch, aunque cualquier usuario es libre de proporcionarte una solución, a ver si el compañero moderador Leo se anima.
Saludos!
|
|
« Última modificación: 13 Octubre 2013, 03:41 am por EleKtro H@cker »
|
En línea
|
|
|
|
fido28
Desconectado
Mensajes: 1
|
Hola: Me gustaria saber si me pueden ayudar necesito crear un archivo BAT que se ejecute un programa determinado por decir el excel pero que al iniciar se inicie como otro usuario y que ademas este oculto para que los usuarios no vean el login del BAT. He investigado un poco creando el BAT y despues se puede pasar a un EXE para que no se visualice pero no logro hacerlo funcionar. -u usuario -p password "%ProgramFiles%\Microsoft Office\Office14\EXCEL" Ojala se pueda me encantaria saber GRACIAS de antemano.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
@fido28 La temática de este hilo trata sobre maniuplación de archivos de texto, para el resto de dudas, formula un nuevo post. 1. Lo más parecido a técnicas de Impersonation en Batch, es usando el comando RunAs. En consola: 2. Puedes convertir un script bat a EXE con ExeScript Editor. Saludos
|
|
|
En línea
|
|
|
|
eternus1492
Desconectado
Mensajes: 1
|
Hola que tal, me gustaría saber si me podeis echar una mano para crear un archivo .bat que realice lo siguiente: Tengo por un lado un fichero maquinas.txt con este contenido: amon,osiris,tutatis,heman,skeletor y por otro lado tengo un fichero config.txt con este contenido: ** Configuración General del Cliente **
NODENAME vc1_dc2_dm1 *TCPSERVERADDRESS 10.0.84.21 passwordaccess generate enablelanfree yes *LANFREECommmethod TCPIP *LANFREETCPport 1502 LANFREETCPServeraddress 10.0.84.23
** Planificadores y Logs **
schedmode prompted schedlogname c:\tivoli\tsm\baclient\logs\dsmsched_dc2_dm1.log errorlogname c:\tivoli\tsm\baclient\logs\dsmerror_dc2_dm1.log schedlogretention 7 errorlogretention 7
** TSM4VE Parámetros **
VMCHOST esxvcpsp.bankinter.bk VMCuser TSM VMMC DEFECTO VMCTLMC DEFECTO VMBACKUPTYPE FULLVM VMFULLTYPE VSTOR VMVSTORTRANSPORT san:nbd
VMPROCESSVMWITHPRDM yes VMPROCESSVMWITHINDEPENDENT yes VMENABLETEMPLATEBACKUPS yes VMBACKDIR c:\tivoli\tsm\baclient\mnt VMMAXPARALLEL 5 VMLIMITPERHOST 3 VMLIMITPERDATASTORE 3 HTTPPORT 1585
** Parámetros Optimización Protectier **
resourceutilization 8 TXNBYTELIMIT 2097152
** Máquinas en Backup **
DOMAIN.VMFULL vm=vm1,vm2,vm3;-vm=rma*,apo*,vdi*,febe*,elias*,jenk*,parsp*,waslin*,propo*,win7*,boco*,webser*,axg*,one*,read*,maja*,ntin*,pgue*,ext*"
MANAGEDSERVICES WEBCLIENT Lo que necesitaria es hacer un bat que coja la lista de máquinas del primer fichero: amon,osiris,tutatis,heman,skeletor y la ponga en la parte del segundo fichero, para que quede de esta forma vm=amon,osiris,tutatis,heman,skeletor; Un saludo cordial. [MOD]: Utiliza el botón de insertar código para insertar código o contenido de texto
|
|
« Última modificación: 21 Octubre 2013, 11:27 am por EleKtro H@cker »
|
En línea
|
|
|
|
vicox19
Desconectado
Mensajes: 5
|
tengo el siguiente caso. todos los dias tengo que instalar un programa en mi empresa y necesito cambiar el numero de la version en 10 archivos de textos diferentes. por ejemplo:
version de ayer: 1.1.20 version de hoy: 1.1.21 el instalador se encuentra hubicado digamos en C:\instaladores hoy quiero instalar la version actual y para eso tengo que abrir 10 diferentes archivos de texto hubicados en el mismo folder. Dentro el archivo hay un parametro VERSION ACTUAL: 1.1.20 (que es la version de ayer)
quisiera saber con un archivo BATCH puedo hacer que me pase lo siguiente al ejecutar el BATCH:
cual es la version actual?: 1.1.21 abrir archivo1.txt reemplazar 1.1.20 por 1.1.21 abrir archivo2.txt reemplazar 1.1.20 por 1.1.21 abrir archivo3.txt reemplazar 1.1.20 por 1.1.21 ..... abrir archivo10.txt reemplazar 1.1.20 por 1.1.21
es posible???
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Modificar archivos de texto [batch] [Perl]
« 1 2 »
Scripting
|
bjeli1980
|
10
|
13,751
|
17 Mayo 2010, 09:07 am
por bjeli1980
|
|
|
[BATCH] Ayuda guardando archivos de texto a php
Scripting
|
Geormarsch
|
2
|
4,360
|
20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
|
|
|
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
|
Eleкtro
|
2
|
8,099
|
15 Marzo 2014, 15:17 pm
por FranciskoAsdf
|
|
|
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
|
PUCH84
|
6
|
10,022
|
28 Abril 2014, 09:49 am
por PUCH84
|
|
|
Ayuda con batch para crear archivos de texto plano
Scripting
|
seu230
|
6
|
3,125
|
5 Octubre 2018, 10:28 am
por seu230
|
|