Ms-Dos - Editar línea de fichero

 
Vista:

Editar línea de fichero

Publicado por Marta (4 intervenciones) el 09/04/2012 15:35:23
Hola, tengo un fichero de texto y me gustaría editar una línea del mismo. Tengo que editar la tercera línea que contiene VERSION = 34 y donde el 34 poner un valor que tengo almacenado en una variable. Estoy intentando ésto pero no me funciona:

( echo 3
echo VERSION=%%D
echo w
echo e
) | edlin /b Fichero.txt


¿Alguien sabe cómo podría solucionarlo?
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Editar línea de fichero

Publicado por Marta (4 intervenciones) el 09/04/2012 16:55:12
Hola, he hecho ésto y parece que funciona, pero me mete un caracter extraño al final del fichero, además de crear un .bak

( echo %version%
echo SET SLM_VERSION=%numero%
echo w
echo e
)| edlin /b ConvMpm.txt > nul 2>&1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Editar línea de fichero

Publicado por A.H.H (216 intervenciones) el 15/04/2012 17:24:08
Hola, se puede hacer con SET.

La funcion replace que existe en otros lenguajes de programacion, tambien se puede hacer en .bat.

la sintaxis es ---> %variable:string1=string2%
ejemplo:
1
2
3
4
5
6
@echo off
set cadena=mar
echo %cadena%
set cadena=%cadena:mar=marea%
echo %cadena%
pause

Esto hace que cambiemos la palabra mar por la palabra marea y si fuera en un texto cambiaria todas las palabras mar por marea.
Hasta aqui todo bien pero ¿que pasa si queremos utilizar variables dentro de la sintaxis del set para reemplazar.?

Esto nos daria errores y errores--> set texto=marea
---> set cadena=%cadena:mar=%texto%%
Para poder usar la sintaxis con variables deberemos usar arriba en el .bat la frase
setlocal enabledelayedexpansion
y usar el simbolo ! para emVolver la sintaxis del reemplazo del SET.

TE PEGO ESTA CHAPA PORQUE ME HA COSTADO MUCHO DESCUBRIR PORQUE NO ME FUNCIONABA EL CODIGO QUE VIENE A CONTINUACION CON VARIABLES.
PERO HE LOGRADO SUSTITUIR EN UN TEXTO EL NUMERO 34 POR EL 70 QUE ESTA METIDO
DENTRO DE LA VARIABLE num.

Bueno, suponiendo que tienes un texto dentro del archivo texto.txt y que en el texto existe la palabra
version=34, el siguiente codigo te cambiaria por version=70

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
set num=70
for /f "tokens=*" %%A in (texto.txt) do (set "resultado=%%A")&call :sub
copy salida.txt texto.txt
del salida.txt
start /B "" texto.txt
 
goto:eof
:sub
echo !resultado:34=%num%!>>salida.txt
goto:eof



nota: Para ejecutar el ejemplo deben estar el archivo texto.txt y el archivo.bat en el mismo directorio.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Editar línea de fichero

Publicado por cesar (1 intervención) el 18/03/2013 17:18:34
hola mirando el tema tengo un proceso algo parcedido tengo muchos txt, ademas el codigo son super largo y tengo que cambiarle solo un numero 394857623,,, queria saber si con un .bat podria hacer este cambio y que queden con el mismo nombre para todos los txt y no hacerlo manual uno a uno...muchas graciaselijiendo la caprpeta donde quiero que queden.gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Editar línea de fichero

Publicado por Juan M. Perez (1 intervención) el 14/05/2013 11:07:03
"Para poder usar la sintaxis con variables deberemos usar arriba en el .bat la frase
setlocal enabledelayedexpansion
y usar el simbolo ! para emVolver la sintaxis del reemplazo del SET."

Me estaba volviendo loco y esto funciona perfectamente, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Editar línea de fichero

Publicado por Jorge (1 intervención) el 22/05/2015 17:28:13
Hola:

Estoy buscando algo como lo que mencionas aquí, pero el texto que quiero reemplazar ya tiene un signo "="

Qué puedo hacer en este caso?

(la linea que quiero reemplazar en la serie de archivos con una variable tomada de otro archivo es algo como "host=127.0.01" )

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Editar línea de fichero

Publicado por florencio (1 intervención) el 05/06/2016 00:15:17
Amigo como debería de quedar este archivo bat, si yo quisiera cambiar
La línea versión=34 pero no conozco el valor de "versión= " (que en tu ejemplo es 34)
Sin embargo que teniendo el valor que sea sin que yo lo conozca cambie este por digamos 70
Para seguir en tu ejemplo
Gracias espero me entiendas y puedas ayudarme..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar