Título: pulsaciones en batch
Publicado por: daniel.r.23 en 18 Febrero 2013, 23:15 pm
Título: Re: pulsaciones en batch
Publicado por: Eleкtro en 19 Febrero 2013, 00:23 am
No puedes hacer eso en Batch (ni ayudarte con un VBS), esto es Batch, no puedes capturar eventos del teclado, sólamente puedes hacer algo parecido con el comando choice: Echo [3] opcion 3 [A] Atras Choice /C 123A /M "escoje una opcion" Echo has elegido la opción %ERRORLEVEL%
http://foro.elhacker.net/scripting/batch_code_punto_de_venta_resuelto-t369481.0.html;msg1776205#msg1776205 http://foro.elhacker.net/scripting/interpretar_una_palabra_con_otra_o_remplazarla-t375956.0.html;msg1804159#msg1804159 Saludos
Título: Re: pulsaciones en batch
Publicado por: daniel.r.23 en 20 Febrero 2013, 13:14 pm
Echo [1] opcion 1 Echo [2] opcion 2 Echo [3] opcion 3 [A] Atras Choice /C 123A /M "escoje una opcion" If %Errorlevel% EQU 4 (Goto :Etiqueta) Echo has elegido la opción %ERRORLEVEL% Esto me sirve pero si por ejemplo presiono A me va a la pantalla anterior, pero si quiero escribir algo ejemplo libro.txt no me deja y no tengo forma, alguna idea?
Título: Re: pulsaciones en batch
Publicado por: Eleкtro en 20 Febrero 2013, 13:24 pm
Esto me sirve pero si quiero escribir algo ejemplo libro.txt no me deja
Para eso sólo puedes usar "Set /P"r. saludos
Título: Re: pulsaciones en batch
Publicado por: daniel.r.23 en 20 Febrero 2013, 13:41 pm
Para eso sólo puedes usar "Set /P"r.
saludos
Disculpa pero no estoy entendiendo. te muestro el cod y la idea, cls :Menu cls color 0F echo **************************************************************** echo * * Obtener Lista Faltantes Actulizada * * echo * * Daniel Ramos * * echo * ********************************************************** * echo * 2 - Separar por comprador * echo **************************************************************** :Comparar echo **************************************************************** echo * * Obtener Lista Faltantes Actulizada * * echo * * Daniel Ramos * * echo * ********************************************************** * echo * Ingrese el nombre y la extension del archivo * echo * Ejemplo: faltantes.txt * echo **************************************************************** Choice /C A /N /M "Aarchivo previamente procesado: " Echo has ingresado una cadena de caracteres :Salir
La idea es que al presionar A se vaya al otro menu, y si escribo una cadena de caracters este se guarde en una variable, en el choise no puedo poner un "set /p r=" y que quede esperando una cadena de caracteres.
Título: Re: pulsaciones en batch
Publicado por: Eleкtro en 20 Febrero 2013, 13:58 pm
La idea es que al presionar A se vaya al otro menu, y si escribo una cadena de caracters este se guarde en una variable, en el choise no puedo poner un "set /p r=" y que quede esperando una cadena de caracteres.
Lo que intento decirte es que sólo puedes escribir cadenas con "Set /P", con "Choice" sólo puedes escribir 1 dígito. No hay forma de hacer lo que pides (combinarlo), esto es Batch. Saludos
Título: Re: pulsaciones en batch
Publicado por: daniel.r.23 en 20 Febrero 2013, 14:13 pm
Bien gracias.
Título: Re: pulsaciones en batch
Publicado por: daniel.r.23 en 20 Febrero 2013, 15:37 pm
estoy de nuevo, idea de como pasar el valor de un errorlevel a texto? ejemplo yo presiono la tecla h y el errorlevel es 104, ahora yo como muestro ese 104 como h en cmd ?
Título: Re: pulsaciones en batch
Publicado por: Eleкtro en 20 Febrero 2013, 16:16 pm
¿Como que si presionas la tecla "H" el errorlevel que te manda es 104? El errorlevel, en el comando Choice, va del 1 al X aumentando de valor progresívamente, por ejemplo en este comando, si elijes la letra "H", el errorlevel será 8, no 104 (que es el número decimal de la letra) Choice /C ABCDEFGH
Lee la ayuda del comando: NOTA: La variable de entorno ERRORLEVEL está establecida como el índice de la clave que se seleccionó en el conjunto de opciones. La primera opción devuelve un valor de 1, la segunda un valor de 2 y así sucesivamente. Si el usuario presiona una clave que no sea una opción válida, la herramienta emite un sonido de advertencia. Si la herramienta detecta una condición de error, devuelve un valor ERRORLEVEL de 255. Si el usuario presiona CTRL+PAUSA o CTRL+C, la herramienta devuelve un valor ERRORLEVEL 0. Cuando el usuario usa parámetros ERRORLEVEL en un programa por lotes, los enumera en orden decreciente. De todas formas si quieres pasar el %ERRORLEVEL% decimal a ASCII, aquí tienes:
Saludos.
Título: Re: pulsaciones en batch
Publicado por: daniel.r.23 en 20 Febrero 2013, 17:02 pm
Acá me esta saliendo con ayuda del archivo Keyboard.dat @ECHO OFF
mode con cols=66 mode con lines=20 cls
set char= set text=Aarchivo previamente procesado: set texto=%text% :Menu cls color 0F
echo **************************************************************** echo * * Obtener Lista Faltantes Actulizada * * echo * * Daniel Ramos * * echo * ********************************************************** * echo * * echo * Opciones: * echo * * echo * * echo * 1 - Comparar * echo * 2 - Separar por comprador * echo * 3 - Imprimir * echo * 4 - Salir * echo * * echo * * echo * * echo * * echo * * echo * * echo **************************************************************** set /p opc=Opci¢n: If %opc% == 1 goto :Comparar If %opc% == 4 goto :Salir
:Comparar cls echo **************************************************************** echo * * Obtener Lista Faltantes Actulizada * * echo * * Daniel Ramos * * echo * ********************************************************** * echo * * echo * * echo * * echo * * echo * * echo * * echo * Ingrese el nombre y la extension del archivo * echo * * echo * * echo * Ejemplo: faltantes.txt * echo * * echo * * echo * ***************** echo * * [Esc] ATRAS * echo **************************************************************** echo %text% keyboard if /I %errorlevel% == 27 ( goto :Menu ) if /I %errorlevel% == 8 ( set text=%texto% goto :Menu ) if %errorlevel% == 13 ( goto :siguiente ) call :caracter set "texto=%text%" set "text=%text%%char%" goto :Comparar
:salir exit
:Siguiente cls echo **************************************************************** echo * * Obtener Lista Faltantes Actulizada * * echo * * Daniel Ramos * * echo * ********************************************************** * echo * * echo * * echo * * echo * * echo * * echo * * echo * Esto si que es complicado * echo * * echo * * echo * * echo * * echo * * echo * *************** echo * * [Z] ATRAS * echo **************************************************************** pause goto :salir
:caracter
if %errorlevel% == 46 ( set char=.) if %errorlevel% == 49 ( set char=1) if %errorlevel% == 50 ( set char=2) if %errorlevel% == 51 ( set char=3) if %errorlevel% == 52 ( set char=4) if %errorlevel% == 53 ( set char=5) if %errorlevel% == 54 ( set char=6) if %errorlevel% == 55 ( set char=7) if %errorlevel% == 56 ( set char=8) if %errorlevel% == 57 ( set char=9) if %errorlevel% == 65 ( set char=A) if %errorlevel% == 66 ( set char=B) if %errorlevel% == 67 ( set char=C) if %errorlevel% == 68 ( set char=D) if %errorlevel% == 69 ( set char=E) if %errorlevel% == 70 ( set char=F) if %errorlevel% == 71 ( set char=G) if %errorlevel% == 72 ( set char=H) if %errorlevel% == 73 ( set char=I) if %errorlevel% == 74 ( set char=J) if %errorlevel% == 75 ( set char=K) if %errorlevel% == 76 ( set char=L) if %errorlevel% == 77 ( set char=M) if %errorlevel% == 78 ( set char=N) if %errorlevel% == 79 ( set char=O) if %errorlevel% == 80 ( set char=P) if %errorlevel% == 81 ( set char=Q) if %errorlevel% == 82 ( set char=R) if %errorlevel% == 83 ( set char=S) if %errorlevel% == 84 ( set char=T) if %errorlevel% == 85 ( set char=U) if %errorlevel% == 86 ( set char=V) if %errorlevel% == 87 ( set char=W) if %errorlevel% == 88 ( set char=X) if %errorlevel% == 89 ( set char=Y) if %errorlevel% == 90 ( set char=Z) if %errorlevel% == 97 ( set char=a) if %errorlevel% == 98 ( set char=b) if %errorlevel% == 99 ( set char=c) if %errorlevel% == 100 ( set char=d) if %errorlevel% == 101 ( set char=e) if %errorlevel% == 102 ( set char=f) if %errorlevel% == 103 ( set char=g) if %errorlevel% == 104 ( set char=h) if %errorlevel% == 105 ( set char=i) if %errorlevel% == 106 ( set char=j) if %errorlevel% == 107 ( set char=k) if %errorlevel% == 108 ( set char=l) if %errorlevel% == 109 ( set char=m) if %errorlevel% == 110 ( set char=n) if %errorlevel% == 111 ( set char=o) if %errorlevel% == 112 ( set char=p) if %errorlevel% == 113 ( set char=q) if %errorlevel% == 114 ( set char=r) if %errorlevel% == 115 ( set char=s) if %errorlevel% == 116 ( set char=t) if %errorlevel% == 117 ( set char=u) if %errorlevel% == 118 ( set char=v) if %errorlevel% == 119 ( set char=w) if %errorlevel% == 120 ( set char=x) if %errorlevel% == 121 ( set char=y) if %errorlevel% == 122 ( set char=z)
|