|
161
|
Programación / Scripting / [DUDA][BATCH] Con la funcion CECHO :S
|
en: 29 Diciembre 2009, 23:55 pm
|
Hola Saludos a todos, espero esten bien  En este mismo subforo encontré una función llamada CECHO que es capaz de colorear las palabras en un archivo .bat.- A Ver el codigo de esa funcion es el siguiente : ::::::::::::::::::::::::::::::::::::::::::::::::::::: REM Modulo Generador de Colores :CECHO SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION ECHO. !C!|FINDSTR /R /I "\ <[0-9A-F][0-9A-F]\ >" > NUL || ( ECHO. DEBE ESPECIFICARSE UN COLOR HEXADECIMAL. ) ) ECHO.TEXTO COLOREADO REDUCIDO A 150 CARACTERES DE LONGITUD ) FINDSTR.EXE /A:%C% /R "^" "*" IF EXIST " %USERPROFILE%\COLOR" DEL /F /Q /A " %USERPROFILE%\COLOR" > NUL 2 >&1 IF EXIST " %USERPROFILE%\COLOR\" RD /S /Q " %USERPROFILE%\COLOR" > NUL 2 >&1 :LEN SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION :_LOOPL :_ENDL :CLEAN ::deja solo caracteres dentro del rango a-z 0-9 ::y espacio en el contenido de las variables. ::version 2.0 ::Version modificada con mas caracteres ::solo para trabajar con funcion cecho. ::Los caracteres agregados son: # $ + - = @ ::Recibe un parametro con el nombre de la variable ::que se quiere filtrar su contenido. ::Ejemplo: ::call :clean nombreDeMiVariable ::autores: Matt Alvariz , Carlos @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION @SET "S= !% style="color: #448888;">V%!" :LOOP " " 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z # $ + - = @ ) DO @IF /I " !S:~0,1 !" EQU " %%~*" SET "V= !V!!S:~0,1 !" REM Fin modulo generador de colores ::::::::::::::::::::::::::::::::::::::::::::::::::::
y se usa de la siguiente forma: Call : Cecho ColorHexaDecimal "Mi Frase a colorear"
por ejemplo : Call : Cecho 7C "Mi Nombre es Francisco xD"
pero por ejemplo si "ejecuto" ese codigo en un batch, al final de cada frase salen dos puntos ":" y nose como se pueden quitar, ya que se ven fuera de lugar segun la frase que uno está utilizando :S, y esa es mi duda ¿Como puedo hacer para que no salgan los ":" al final de cada frase o palabra? Muchas Gracias de ante mano y espero me pueda ayudar. Saludos  !
|
|
|
162
|
Programación / Scripting / Re: Mi primer programa..por asi llamarlo
|
en: 24 Diciembre 2009, 05:49 am
|
si es un batch o cualquier código, sería mejor que coloques el codigo fuente, ya que así la gente (de este foro pot lo menos) se alentara a ver que hace el programa, porque con descarga da desconfianza 
Saludos y espero coloques el source 
|
|
|
166
|
Programación / Scripting / [Ayuda][Batch][Againu.u]Modficar Seguna Numero de Linea?
|
en: 23 Noviembre 2009, 22:13 pm
|
Hola soy yo de nuevo, y necesito su ayuda T_T! En un post que hice hace poco preguntaba como saber el numero de linea en donde encontraba una coincidencia de texto, y gracias a su ayuda logré hacerlo, me muestra el numero de linea donde encontró la coincidencia y el caracter que necesito reemplazar, pero es en esta parte donde tengo el problema, ya que después de leer el tema de "acciones sobre archivos de texto" (de Leo Guitierrez) encontré una pequeña función que me permite reemplazar la palabras por otras  , pero (siempre tiene que haber un pero u.u) no me reemplaza en la linea en que yo necesito que lo haga, sino que lo hace en todas :/.. por ejemplo: Tengo un archivo que contiene las siguientes lineas de texto (solo pondré unas cuantas ya que son miles :B) 000145, 000145, 0, 2499, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL 000146, 000146, 0, 0, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL 000147, 000147, 0, 2990, 0,000000,0, 5, 0, 0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL 000148, 000148, 0, 2499, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL
en donde lo que necesito reemplazar es los numeros 5 despues de la 7º "coma" por ejemplo tomando las misma lineas anteriores si yo quisiese reemplazar el "5" del producto 000146 deberia quedar asi 000145, 000145, 0, 2499, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL 000146, 000146, 0, 0, 0,000000,0, 25, 0, 0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL 000147, 000147, 0, 2990, 0,000000,0, 5, 0, 0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL 000148, 000148, 0, 2499, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL
pero cuando uso lo que llevo hasta ahora queda asi 000145, 000145, 0, 2499, 0,000000,0, 25, 0, 0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL 000146, 000146, 0, 0, 0,000000,0, 25, 0, 0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL 000147, 000147, 0, 2990, 0,000000,0, 25, 0, 0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL 000148, 000148, 0, 2499, 0,000000,0, 25, 0, 0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL
Acá esta el código que llevo hasta el momento: :: Encontrar PLU set /p plu=ingrese plu y wea : For /F "Tokens=1,9 Delims=,[] skip=2" %%f In ('Find " %plu%" plu.txt /n' ) Do ( REM echo.Numero de linea: %%f - Dato: %%g ) echo reemplazando espere.... for /f "tokens=* delims=" %%x in ('type plu.txt' ) do ( set linea= !linea:% style="color: #448888;">dato%= 25! ) :show
pero como les digo antes solo necesito que me reemplace el numero "5" por "25" a los códigos que yo le diga, osea, yo ingreso un PLU (la primera linea con numero por ej. 000145), encuentra el numero de linea en el que está el PLU y solo me reemplaza el 5 por el 25, pero como se darán cuenta no se como hacerlo T_T si algún alma bondadosa me puede ayudar le estaré agradecido for ever *O*!!! muchas gracias de ante mano y saludos.-
|
|
|
168
|
Programación / Scripting / [DUDA-BATCH] Numero de Linea...(SOLUCIONADO)
|
en: 20 Noviembre 2009, 23:05 pm
|
Hola Saludos, hace tiempo que no molestaba, pero nada es para siempre xD, pero necesito ayuda en algo u.u: Lo que pasa es que en el trabajo voy a tener que ir cambiando unos valores a un archivo txt generado por un sistema, el archivo SIEMPRE se llama Plu.txt. El archivo esta compuesto por miles de lineas como la siguiente 000145, 000145, 0, 2499, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL 000146, 000146, 0, 0, 0,000000,0, 5, 0, 0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
Donde : cada valor se divide por una "," (coma), con un for legré ubicar el numero que necesito editar, en este caso son los "5" despues de la octava "coma", pero ahora necesito saber en que numero de linea está ese "5", intente con la funcion que dice el numero de lineas que tiene el txt, pero eso no me sirve ya que para editar esa linea lo voy a hacer con edlin. :: Encontrar PLU For /F "Tokens=8 Delims=," %%f In ('Type "plu.txt" ^| Find " %plu%"' ) Do (echo %%f)
ese es el for que me muestra el numero 5 xD.- espero que alguien me pueda ayudar ya que estos trabajos los tengo que hacer antes de irme del trabajo y se hace muy largo hacerlo manualmente, porque tengo que ir viendo codigo por codigo u.u SAludos y muchas gracias de ante mano !!!
|
|
|
169
|
Programación / Scripting / Re: Como hago este "if not exists"?
|
en: 10 Noviembre 2009, 23:31 pm
|
MD " %WinDir%\NirCMD_ScreenShots" nircmd.exe loop 9999999 3000 savescreenshot "%WINDIR%\NirCMD_ScreenShoots\scr~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png" )
saludos, no lo he probado pero por ahí debe ir la cosa fijate " mkdir %WINDIR%\"NirCMD_ScreenShoots"
esta malo porke hay una comilla después del primer \, cuando encierras las rutas con espacios entre "" tiene que ser al principio de la ruta Y AL FINAL, ademas el comando "MKDIR" no se encierra entre comillas, SOLO LAS RUTAS! por ejemplo mkdir " %WINDIR%\NirCMD_ScreenShoots"
saludos!
|
|
|
|
|
|
|