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 - FranciskoAsdf

#161
Scripting / [DUDA][BATCH] Con la funcion CECHO :S
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 :

Código (dos) [Seleccionar]
:::::::::::::::::::::::::::::::::::::::::::::::::::::
REM  Modulo Generador de Colores
:CECHO
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
PUSHD "%USERPROFILE%\"
IF EXIST COLOR DEL /F /Q /A COLOR > NUL 2>&1
IF EXIST COLOR\ RD /S /Q COLOR > NUL 2>&1
MD COLOR
CD COLOR

SET "C="
SET "L1="
SET "L2="
SET "L3="

SET "C=%~1"
ECHO.!C!|FINDSTR /R /I "\<[0-9A-F][0-9A-F]\>" > NUL || (
ECHO. DEBE ESPECIFICARSE UN COLOR HEXADECIMAL.
ECHO. COLOR /?
EXIT /B 1
)
SET /A "TAM=0"
SET "L1=%~2"
SET "L2=%~3"
SET "L3=%~4"
IF NOT DEFINED L2 (
SET "L1="
SET "L2=%~2"
SET "L3="
)
CALL :CLEAN C
CALL :CLEAN L1
CALL :CLEAN L2
CALL :CLEAN L3
IF DEFINED L2 CALL :LEN "%L2%"
IF %TAM% GTR 150 (
ECHO.
ECHO.TEXTO COLOREADO REDUCIDO A 150 CARACTERES DE LONGITUD
ECHO.
)
IF DEFINED L2 SET "L2=%L2:~0,150%"
IF DEFINED L2 ECHO.%L3%>"%L2%"
0>NUL SET /P "_=%L1%"
FINDSTR.EXE /A:%C% /R "^" "*"
POPD
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
SET /A CONTL=0
SET "WORDL=%~1"
:_LOOPL
IF NOT DEFINED WORDL (GOTO :_ENDL)
SET "WORDL=%WORDL:~1%"
SET /A CONTL +=1
GOTO :_LOOPL
:_ENDL
ENDLOCAL & SET /A TAM=%CONTL%
EXIT /B 0


: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 "V=%*"
 @SET "S=!%V%!"
 @IF NOT DEFINED S EXIT /B 1
 @SET "V="
:LOOP
 @FOR %%* IN (
" " 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!"
 @SET "S=!S:~1!"
 @IF DEFINED S GOTO :LOOP
 @(ENDLOCAL & SET %*=%V%)
 @SETLOCAL ENABLEEXTENSIONS
 @EXIT /B 0
REM Fin modulo generador de colores
 ::::::::::::::::::::::::::::::::::::::::::::::::::::


y se usa de la siguiente forma:

Código (dos) [Seleccionar]
Call :Cecho ColorHexaDecimal "Mi Frase a colorear"


por ejemplo :

Código (dos) [Seleccionar]
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
Scripting / Re: Mi primer programa..por asi llamarlo
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 :)
#163
UP!  :-X

porfavor, de verdad que necesito la ayuda  :-( :-( :-( :-( :-( :-(
#164
sigo esperando que algun alma caritativa me pueda ayudar  :-( :-( :-( :-(
#165
nadie sabe u.u?

porfa nito ayuda :(
#166
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:

Código (dos) [Seleccionar]

@echo off
:: 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 (
Set "linea=%%f"
Set "dato=%%g"
REM echo.Numero de linea: %%f  -  Dato: %%g
)

echo %linea%
echo %dato%

echo reemplazando espere....
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type plu.txt') do (
set linea=%%x
set linea=!linea:%dato%=  25!
call :show !linea!
)
pause
:show
echo %* >> SalidaPLU.txt
goto:eof


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.-
#167
Scripting / Re: [DUDA-BATCH] Numero de Linea...
21 Noviembre 2009, 22:23 PM
gracias ^^

Código (dos) [Seleccionar]
For /F "Tokens=1,9 Delims=,[] skip=2" %%f In ('Find "%plu%" plu.txt /n') Do (echo.Numero de linea: %%f  -  Dato: %%g)

eso fue con lo que me ayudaron y funciona perfecto


saludos !
#168
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.

Código (dos) [Seleccionar]
@echo off
:: Encontrar PLU
set /p plu=ingrese plu :

For /F "Tokens=8 Delims=," %%f In ('Type "plu.txt" ^| Find "%plu%"') Do (echo %%f)
Pause
EXIT


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
Scripting / Re: Como hago este "if not exists"?
10 Noviembre 2009, 23:31 PM
Código (dos) [Seleccionar]

if not exist "%windir%\NirCMD_ScreenShoots\" (
MD "%WinDir%\NirCMD_ScreenShots"
) ELSE (
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

Código (dos) [Seleccionar]
"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

Código (dos) [Seleccionar]
mkdir "%WINDIR%\NirCMD_ScreenShoots"



saludos!
#170
Scripting / Re: ADIVINADOR [batch]
4 Noviembre 2009, 14:16 PM
ta weno xD, a mi me funciona del 10 :B, tiene que ir presionando enter, no ingresando cosas :BB:B:B:

saludos wen game :D