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

#11
¿Cómo se hace?

Printf me muestra el texto en la consola como si fuera  "Echo texto"

y como consola que es, al not ener "pause" se cierra tan rápido comoo termina de procesarlo, es decir, apenas parpadea.
#12
Scripting / Re: Batch Multi Instalador
26 Octubre 2010, 15:56 PM
Hola ociruam.

Es complicdao...deberías aprender BATCH bien antes de ponerte con el manejo del ratón.

Si te interesa, ve creando botones de colores con el comando COLOUS, de bolivianito. Te aconsjeo que utilices blanco y los dos tonos de los colores para añadir luces y sombras a los colores. En un post que publiqué llamado "caracetres especiales, BATCH, bastante completo" puedes consultar cómo poenr bordes a los botones con colous.

Después, el script del que te hablo es algo como esto:

@echo off
set "e=echo."
title Mouse Example [By Binary_Death]
:_main
cls&%e%Press some button.&%e%
%e%ÉÍÍÍÍÍÍÍÍÍÍÍÍ»
%e%ºFirst Buttonº
%e%ÈÍÍÍÍÍÍÍÍÍÍÍͼ
%e%ÉÍÍÍÍÍÍÍÍÍÍÍÍ»
%e%ºSec. Button º
%e%ÈÍÍÍÍÍÍÍÍÍÍÍͼ
call:mouse_get
call:mouse_cmp "0000,0001,0002,0004,0005,0006,0007,0008,0009,000A,000B,000C,000D,000E" "0002,0003,0004"
if %cmp%==1 (echo Click en el first button.&ping -n 5 localhost>nul)
call:mouse_cmp "0000,0001,0002,0004,0005,0006,0007,0008,0009,000A,000B,000C,000D,000E" "0005,0006,0007"
if %cmp%==1 (echo Click en el second button.&ping -n 5 localhost>nul)
GoTo:_main
:mouse_get
(
echo.e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo.g116
echo.q
)|Debug|Find /I "X">%temp%\mouse.dat
for /f "tokens=2,3,4" %%x in (%temp%\mouse.dat) do (
set "BX=%%x"
set "CX=%%y"
set "DX=%%z"
)
GoTo:EoF
:mouse_cmp
set/a cmp=0
for %%x in (%~1) do (
if "%CX%"=="CX=%%x" (
for %%y in (%~2) do (
if "%DX%"=="DX=%%y" (
set/a cmp=1
))))
GoTo:EoF

Pésimo inglés...verdad?

Solo tienes que cambiar las coordenadas en:


call:mouse_cmp "0000,0001,0002,0004,0005,0006,0007,0008,0009,000A,000B,000C,000D,000E" "0002,0003,0004"

ahí desde 0000 hasta 000E son las coordenadas horizontales, y luego lo  de "0002,0003,0004"

Su funcionamiento es sencillo: detecta un clic, y si las coordenadas son esas, pones las instrucciones que quieras.

if %cmp%==1 (echo Click en el first button.&ping -n 5 localhost>nul)

Recuerda que las coordenadas son en hexadecimal:

0 1 2 3 4 5 6 7 8 9 a b c d e f
10  11 12 13 14 15 16 17 18 19 1a 1b 1c etc...

f=16
10=17 etc...
#13
Gracias por vuestras respuestas. He descargado otro compilador y no lo he instalado, simplemente he copiado las libreráis a las de Dev C++ y funciona bastante bien.

Una pregunta....

con printf el texto dee salir por la consola MS-DOS???

En caso afirmativo....Es correcto usar el comando system ("pause");  ??
#14
Scripting / Re: Batch Multi Instalador
25 Octubre 2010, 23:36 PM
Bueno chicos....yo había pensado en mejorar un poco la estética del instalador.

En lugar del incómodo pulse 1 para...podríamos hacer una consola en la que el usuario pudiera elegir la opción.

Con el comando Colous de bolivianito, que permite poner caracteres ASCII, podemos poner el círculo hueco y el círculo lleno para simular botones de opción. Y podría perfectamente usarse el script del uso del ratón de binary deacth....

Yo creo que daría un aspecto mucho más que profesional y de maestría en este lenguaje. No es como un InstalShield Wizard pero...eso se haría con C++, no con BATCH.
#15
Programación C/C++ / [C] AYUDA CON EL COMPILADOR
23 Octubre 2010, 13:16 PM
Hola, hace un par de días que he saltado desde lenguajes más básicos (como BATCH) y he decidido empezar con C....Es imposible!. He descargado dev C++ y faltan todas las librerías básicas, stdio.h, conio.h etc... ¿Dónde puedo descargarlas? He intentado de todo pero es imposible descargar otro compilador, me llevan a páginas araras donde me sale licencias en vez de lo de "descaragar" AYUDAA.
#16
Scripting / Re: Ayuda con FOR en Batch!!
16 Septiembre 2010, 22:03 PM
Hola Sloth...ya te ayudo yo...

For %%a in (conjunto) do (Acciones)

Si la variable la introducimos en el código, lleva dos porcentajes, es una sola letra y se distinguen entre mayúsculas y minúsculas) [%%A != %%a]

definimos el conjunto, que es el conjunto de instrucciones o archivos con los que queremos trabajar, y en do introducimos todas las instrucciones.

por ejemplo

For %%x in (archivo1.txt archivo2.exe) do (del /f /q %%x)

Con esto, estamos llamando al conjunto con la variable %%x, y en las instrucciones, borramos esos dos archivos porque %%x se refiere al conjunto...

a parte del conjunto que contiene la variable %%a

FOR %%var IN (d*) DO echo %%var
Lo que hacemos con el for es que nos muestre todos los archivos que comiencen por la letra "d" en el directorio predeterminado o el especificado por cd\push o popd (comando CD: posicionarse en otra carpeta)

*.exe = Todos los archivos que acaben en .exe
?.exe = Todos los archivos que tengan UNA letra y acaben en .exe

*= caracteres cualquiera
?=único carácter (cualquiera)

Veamos como usar FOR para los bucles

Hemos de añadir el modificador /L (de loop – bucle)

For /L %%variable (valor inicial, incremento por repetición, final (detención)) do (comandos)

Definiremos el valor inicial de la variable pero con los dos por cientos al principio. Después, entre paréntesis, pondremos el valor inicial, después la condición para que se siga repitiendo el bucle (mientras), y por último, el cambio por repetición. Do (hacer) especifica (entre paréntesis) los comandos que se hacen durante el bucle.

FOR /L %%x in ( 0,1,5 ) Do ( echo %%x )

te devuelve

0
1
2
3
4
5

Aquí lo vemos claramente: 0 es el valor inicial, aumenta 1 cada repetición y el final se da cuando la variable alcanza 5. Se mostrarán esos números porque hemos elegido en "do" que echo muestre el valor de la variable en cada repetición. Cualquiera de los tres valores puede ser una variable.

for /l %%i in (2 1 %potencia%) do (
set /a resultado=resultado * %base%
)

Esto nos puede servir para mostrar un resultado de "ir probando". Por ejemplo, a la hora de calcular una raíz, cada repetición irá aumentando uno hasta que "If" coincida con la fórmula de la raíz cuadrada. Esto es muy cómodo, ocupa mucho menos espacio y muestra los resultados más precisos, pero es más complicado.

FOR %%x in (x*) DO echo %%x

Esto mostrará todos los archivos que empiecen por X.

Hay dos modificadores más.

FOR /D %%x in (m*) DO echo %%x

Con /d mostrará solo los directorios que empiecen con M.

Y el más importante y complejo, el modificador /f.

El conjunto puede contener
Conjunto de archivos > sin comillas
Cadena de caracteres > con comillas dobles [ " " ]
Comando •> con comilla simple [ ' ' ]

OPCIONES

• Eol -> Todo lo que esté después de éste carácter (especificado con eol) será ignorado (para cada línea)

• Skip -> Es el número de líneas a saltarse al principio de un archivo o comando.

• Delims -> Delims nos sirve para separar strings, si no se coloca esta opción, se usarán como separadores "espacio" y "tab."

• Tokens -> Con tokens especificamos qué segmentos (palabras), delimitados por "delims", serán pasados a las variables... por ejemplo:

1, 2, 3
Solo pasará los primeros 3 segmentos.

1,2*
Pasa 2 segmentos, el primero y todo lo que este después (el * regresa todo el resto de la línea)

1,2,3-7.8.9-14,16*
Pasará los tres primeros segmentos, luego saltará al séptimo, seguirá has el noveno. Luego saltará al 14, salta al dieciséis hasta que se acaben los segmentos.

• Usebackq ->Cambia la forma de interpretar si es string o comando.

Pueden combinarse dos o más atributos para /f.

FOR /F "tokens=1,2-4,8,9,10*" %%a IN ("Con for f tokens podemos delimitar como palabra varias palabras y mostrarlas como variables consecutivas") DO echo %%a %%b %%d %%e %%f %%g %%h
Esta línea dará como resultado lo siguiente:

Con for tokens palabra varias palabras y mostrarlas como variables consecutivas

Podemos, por tanto, elegir qué palabras mostrar. Ahí va un ejercicio, utilizando FOR, haz un buscador de archivos  (El usuario ha de elegir la palabra o palabras que quiere buscar, utilizad set /p, y esa variable será lo que for tenga que buscar.)

Aquí te dejo algunos códigos parecidos.

Citar::Saber las líneas de un archivo by PyXOLo
@echo off
:contador
set /p archivo=RUTA=
set cuenta=0
for /f %%x in (%archivo%) do set /a cuenta=1+cuenta
set funcion=%cuenta%
echo %funcion%
pause>nul

::Extraer la IP privada de tu ordenador en una variable por PyXOLo
@echo off
For /f "tokens=14 skip=5" %%x IN ('ipconfig') Do set ip=%%x
echo %ip%
pause>nul
goto EOF

::Sacar la ruta de un proceso (by RockoX)
@echo off
rem Sacando la ruta de un ejecutable activo.   
(cd %homedrive%\)
:Code
(cls)
(set /p proceso=Nombre de proceso : )
(if not defined proceso (goto:Code))
for /f "tokens=*" %%x in ('wmic process get executablepath ^| find /i "%proceso%"') do (set ruta=%%x)
(echo %ruta%)
(pause>nul)
(goto:eof)

También hay más tipos de for, como for /r, esto hará una lista de archivos de la ruta:
For /r C:windows %a in (Set) do Echo %a   .... Pero volvemos al for f tokens.
Esto nos viene muy bien, por ejemplo, si queremos tomar una pregunta de un txt.
:buscarnumero
set num=0
set /a num=%random% %% 100
if %num% geq 2 (if %num% leq 100 (goto :sig))
goto :buscarnumero
:sig
set /a nume=%num%-1
set a=0
for /f "skip=%nume% delims=" %%a in ('type "Preguntas.txt"') do (
if !a!==0 (
set preg=%%a
set a=1))
set b=0
for /f "skip=%nume% delims=" %%a in ('type "Respuestas.txt"') do (
if !b!==0 (
set rta=%%n
set b=1))
echo %preg%
If "%resp%"=="%rta%" (goto bien) else (goto mal)

Con esto tomará un número aleatorio entre 0 y 100, restamos uno para que se salte una línea menos, y de ahí tomamos el valor en el archivo preguntas.txt, haceos lo mismo con las respuestas, mostramos la pregunta, si la respuesta escrita por el usuario coincide con la tomada del archivo, irá a bien. Analizad este código.
#17
Scripting / Re: [BATCH] (JUEGO TA-TE-TI)
7 Septiembre 2010, 13:52 PM
Muy buena idea lo de hacer un tres en raya pero...no sé cómo te funcionará a ti `pero el mío está tonto...pongo una X y él me pone dos cuadrados, y cuando pongo la x para que no haga tres en raya...en vez de mi X pone él su cuadrado y me hace 3 en raya 2 veces
#18
Scripting / Re: Manual - Usar Mouse en Batch
7 Septiembre 2010, 13:49 PM
Hola 3D1...me han recomendado este tema para preguntas sobre el ratón...Ahí va mi pregunta...

¿se puede hacer que detecte al posar el ratón en la consola, no hacer clic, sino solo pasarlo por encima)

Algo como

if (ratón en estas coordenadas) (instrucciones)
if "clic en estas coordenadas" (instrucciones)

Lo del clic ya lo tengo...pero se podría detectar al posar el ratón?

Otra cosa...en mouse.dat....BX es el botón, CX y Dx las coordenadas pero..¿qué es todo lo demás? ¿Qué es AX, por ejemplo?

Gracias
#19
Scripting / Re: DEBUG (BATCH)
7 Septiembre 2010, 00:42 AM
¿y cual es ese post?
#20
Desarrollo Web / Duda sobre hipervínculos
2 Septiembre 2010, 12:33 PM
Hola amigos...Tengo un problema y espero que me puedan ayudar.

En una página web tengo dos marcos. Uno contiene la barrad e vínculos, y el otro es el contenido.

En el marco de contenido hay un hipervínculo para cambiar idioma. Lo que quiero es que al pulsar le hipervinculo vincule a dos cosas:

-la primera que cambie el propio marco en el que está a la pagina del otro idioma
- y la segunda que a la vez, cambie el otro marco de la barra de vínculos...

¿Puedo hacer eso con HTML? Si no.-..¿Js? ¿PHP?