Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ElPulga

#1
No, no funciona, me sigue tirando el mismo error y no me agrega la segunda linea.

El tema es que este archivo que estoy modificando lo hago luego de instalar un programa, si tambien tengo que instalar SED se va a complicar mas.

Ver que puedo hacer, si hay algun ejemplo mejor me ayudaria bastante.

Gracias.
#2
La parte del codigo que llama a TEXTMAN es el siguiente:


cd %PROGRAMFILES%\Zabbix Agent\
Call :TEXTMAN I 135 "zabbix_agentd.conf" "HostMetadataItem=system.uname"
Call :TEXTMAN RL 237 "zabbix_agentd.conf" "UserParameter=specHWShort,cscript.exe /nologo "C:\Program Files\Zabbix Agent\specHWShort.vbs" "

:TEXTMAN
(SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Invalid parameter & Exit /B 1)) & (GOTO:EOF)
:I
(For /F "tokens=1* delims=]" %%A in ('type "%~3" ^| find /n /v ""') DO (Call Set /A "LINE+=1" && (CMD /C "IF     "%%LINE%%" EQU "%~2" (IF NOT "%~4" EQU "" ((Echo %~4) >> "%~3.NEW") ELSE (Echo+>> "%~3.NEW"))" & (if "%%B" EQU "" (Echo+>> "%~3.NEW") ELSE ((Echo %%B)>> "%~3.NEW"))))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
:RL
(For /F "tokens=1* delims=]" %%A in ('type "%~3" ^| find /n /v ""') DO (Call Set /A "LINE+=1" && (CMD /C "IF NOT "%%LINE%%" EQU "%~2" (if "%%B" EQU "" (Echo+>> "%~3.NEW") ELSE ((Echo %%B)>> "%~3.NEW")) ELSE ((Echo %~4)>> "%~3.NEW")"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)

:RENAMER
(REN "%~1" "%~nx1.BAK") & (MOVE /Y "%~1.BAK" "%TEMP%\" >NUL) & (REN "%~1.NEW" "%~nx1") & (GOTO:EOF)


La linea 237 no tiene nada, probe con RL por que no me dejaba correr 2 veces I
El error es
"))) && (CALL :RENAMER "zabbix_agentd.conf") & (GOTO:EOF) was unexpected at this
time.


Espero que ayude.
Gracias.
#3
Hola: Este es mi primer post aqui, hace rato lo descubri y lo leo seguido, y hoy decidi registrarme.
La duda que tengo es sobre el batch creado por Elektro para manipular texto de un archivo.

Hasta ahora solo lo he usado haciendo una llamada dentro un bat, pero esta vez necesito algo mas complejo.

si pongo dentro de mi bat:
Call :TEXTMAN I 135 "archivo" "texto"
funciona

Pero si pongo:
Call :TEXTMAN I 135 "archivo" "texto"
Call :TEXTMAN RL 237 "archivo" "texto"

obtengo un error y solo ejecuta la primera linea.
Obviamente dentro de mi archivo bat pongo el codigo tanto para I como para RL.

Es posible alguna solucion para que yo dentro de un bat llame mas de una vez a :TEXTMAN?

Gracias