Ms-Dos - Batch Modificar valor en archivo

 
Vista:
sin imagen de perfil

Batch Modificar valor en archivo

Publicado por Jesus (2 intervenciones) el 02/03/2017 17:04:22
quiero realizar un bat que me modifique el valor AutoDetect, en un archivo de texto, el valor actual "1" quiero que el valor cambie a "0"

Contenido de archivo de texto

[Branding]
GUID={c171FFE6-C149-11D0-AFF0-00AA00375800}
Type=0
NoClear=1
[URL]
AutoDetect=1

Tengo este código, pero me cambia el valor de todos los "1"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=test.txt
set OUTTEXTFILE=test_out.txt
set SEARCHTEXT=1
set REPLACETEXT=0
 
 
for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!
 
    >> %OUTTEXTFILE% echo(!modified!
    endlocal
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
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
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Batch Modificar valor en archivo

Publicado por Antoni Masana (811 intervenciones) el 03/03/2017 07:07:29
He realizado algunos cambios para que funcione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
 
set INT_TEXT_FILE=test.txt
set OUT_TEXT_FILE=test_out.txt
 
type nul >%OUT_TEXT_FILE%
 
for /f "delims== tokens=1,2" %%A in ( %INT_TEXT_FILE% ) do call :Graba %%A %%B
 
del %INT_TEXT_FILE%
ren %OUT_TEXT_FILE% %IN_TEXT_FILE%
goto:EOF
 
:Graba
    SET Label=%1
    SET Param=%2
    SET Grupo=%Label:~0,1%
 
    IF "%1" == "AutoDetect" set Param=0
 
    if not "%Grupo%" == "[" (echo %Label%=%Param%)>>%OUT_TEXT_FILE%
    if     "%Grupo%" == "[" (echo %Label%)        >>%OUT_TEXT_FILE%
    goto:EOF

Si tienes alguna duda me la puedes preguntar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Batch Modificar valor en archivo

Publicado por Jose de Jesus (2 intervenciones) el 22/03/2017 00:19:43
muchas gracias, me sirvio mucho.

Observacion: en el comando ren te falto la letra "T" de la palabra "INT" ;)

tube problemas con la ruta de acceso al ser una carpeta de sistema, lo modifique de una manera no muy ortodoxa
te dejo mi script para tus comentarios
saludos
----- ------ -------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set TEXT_PATH=C:\Windows\SysWOW64\
set INT_TEXT_FILE=%TEXT_PATH%ieak.ins
set OUT_TEXT_FILE=%TEXT_PATH%test_out.txt
 
type nul >%OUT_TEXT_FILE%
 
for /f "delims== tokens=1,2" %%A in ( %INT_TEXT_FILE% ) do call :Graba %%A %%B
 
del %INT_TEXT_FILE%
ren %OUT_TEXT_FILE% ieak.ins
 
goto:EOF
 
:Graba
    SET Label=%1
    SET Param=%2
    SET Grupo=%Label:~0,1%
 
    IF "%1" == "AutoDetect" set Param=0
 
    if not "%Grupo%" == "[" (echo %Label%=%Param%)>>%OUT_TEXT_FILE%
    if     "%Grupo%" == "[" (echo %Label%)        >>%OUT_TEXT_FILE%
    goto:EOF
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