elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8]
71  Programación / Programación General / Re: ayuda programacion batch: uso del for /f en: 4 Abril 2019, 20:14 pm
Hola tengo una duda en cuanto el errorlevel
si un errorlevel a cero significa que la acción que buscaba se realizó satisfactoriamente
porque en este codigo

Código
  1. set /p parametro="Indique nombre a buscar: "
  2. for /F "tokens=1,2,3 delims=:" %%a in (agenda.txt) do (
  3.    echo %%a | find /I "%parametro%" >nul
  4.    IF NOT ERRORLEVEL 1 (
  5.        echo ---------------
  6.        echo Nombre
  7.        echo %%a
  8.        echo Apellido
  9.        echo %%b
  10.        echo Telefono
  11.        echo %%c
  12.        echo ---------------
  13.    )
  14. )
  15. pause>nul
  16. goto menu
  17.  

si cambiase el
Código:
IF NOT ERRORLEVEL 1

a por
Código:
IF ERROR LEVEL 0

el script me deja de funcionar. Por qué?
y en todo aso
el valor del errorlevel hace referencia a la ultima acción que se realizo verdad?
o sea, que podría usar varios errorlevels en el mismo script
pero sus valores apuntarían a diferentes comandos. No se como explicarme en esto ultimo.
72  Programación / Programación General / Duda sobre batch. (Else) en: 4 Abril 2019, 20:10 pm
Una duda
solo quiero saber si se puede usar un else dentro de un for
porque me anda tirando errores el script
y creo que el profesor ya lo había comentado en clase
73  Programación / Programación General / Re: ayuda programacion batch: uso del for /f en: 4 Abril 2019, 18:17 pm
- && comando y || comando también usan ERRORLEVEL, el primero ejecuta comando si ERRORLEVEL es 0 (todo correcto), el segundo ejecuta comando si ERRORLEVEL es 1 o más (algo no salió bien, o no encontró lo que se buscaba ...)

- No sé si hayan tocado el tema de ficheros Batch con parámetros: saludar.bat pepe luego el batch imprime: ECHO Hola %1, que es: Hola pepe

-- Pues CALL hace prácticamente lo mismo, en este caso llama a una etiqueta y le pasa parámetros: CALL:imrpimir %%a %%b %%c luego en la etiqueta se usan los parámetros dados con la sintáxis %1 %2 %3

-- Otra cosa a tener en cuenta es que cuando se usa CALL, una vez finalizadas las intrucciones de la etiqueta, en este caso imprimir que finaliza con un GOTO:EOF, automáticamente "se regresa" a la siguiente instrucción que viene luego de llamar a CALL, vamos es como llamar a un ECHO hola, imprime el hola y continúa el programa, lo mismo con el CALL, ejecuta el CALL y continúa el programa.

- Te recomiendo ver la siguiente referencia de comandos completa, está en inglés:

https://ss64.com/nt/call.html
https://ss64.com/nt/errorlevel.html
https://ss64.com/nt/find.html
https://ss64.com/nt/syntax-args.html
...

- Si tu profesor te ha dado documentación o ejercicios haber si los puedes compartir  :xD, ya que no muy normal que enseñen batch a nivel programación, siempre he visto que enseñan a nivel comandos básicos de consulta y búsqueda: dir, find, md, attrib, etc.

Muchas gracias por la información.
 Sí. compartiré todos los scripts y ejercicios que hayamos echo en este curso cuando acabe primero de asir porque capaz se de cuenta que he ido compartiendo la solución a sus ejercicios de programación en batch y conociéndolo capaz me suspende el módulo entero de IMSO (implantación de sistemas operativos).
De todos modos, seguro que me asaltarán más dudas sobre programación en batch que iré posteando en este foro a media que surjan. Un saludo.
74  Programación / Programación General / Re: ayuda programacion batch: uso del for /f en: 4 Abril 2019, 15:50 pm
Hola, muchas gracias a ambos por tomaros la molestia de contestar. Creía que nadie lo haría pero habéis contestado rápido y eso me entusiasma a seguir programando.

Y que la variable se llame %patron% me parece bien pensado.
Mi profesor uso el errorlevel en el script pero yo no tenía su código copiado porque había tirado casi la toalla y estaba desanimado. Estaba de malhumor porque muy aparte que me siento casi al final de la clase y su hermosa letra en la pizarra eran factores que acentuaban mi malestar. Es un señor que sabe mucho de informática pero no sabe como transmitir esos conocimientos a los alumnos.
Me podéis explicar el funcionamiento de la variable errorlevel en este script por favor? creo que si lo entiendo aquí ya enteré casi el resto de lo que queda del curso.
Me podrían explicar para qué sirve el doble && y el doble ||
el call usado en el segundo script tiene la misma función que un goto??
es que nos dijo que no veríamos calls y no entiendo esta función.
Y otra cosa,  mi windows no detecta el comando printf. Muchas gracias por vuestro tiempo compañeros.
75  Programación / Programación General / ayuda programacion batch: uso del for /f en: 3 Abril 2019, 22:31 pm
me han mandado el siguiente ejercicio:

Crea un fichero batch que muestre el siguiente menú
BUSQUEDA DE REGISTROS
1.- Nombre
2.- Apellido
3.- Teléfono
4.- Salir
La opción 1 pedirá un valor. Buscará en el fichero AGENDA.TXT, en el campo nombre
cualquier registro que contenga la cadena especificada. Ejemplo: si busco BE, localizará los
registros BERTA, ALBERTO, ABELARDO… Por cada registro encontrado mostrará:
Nombre
NOMBRE
Apellido
APELLIDO
Teléfono
TELEFONO
Los diferentes registros se separarán por una línea de guiones.
La opción 2 y 3 funcionan de forma similar.
La opción 4 vacía las variables y sale del programa.


el contenido del fichero es el siguiente:


jose:morales:41254
bob:dylan:124544
pepito:jimenez:6651454
susana:ochoa:124454
guillermo:paredes:4575
susel:roca:21145
tomas:palermo:4544


y mi codigo es el siguiente:


Código:
@echo off
rem ejercicio 9
setlocal enabledelayedexpansion
:menu
set nomb=
cls
echo -------------------------
echo - BUSQUEDA DE REGISTROS -
echo -------------------------
echo.
echo 1. Nombre
echo 2. Apellido
echo 3. Telefono
echo 4. Salir
echo.
:opt
set opt=
set /p opt="Selecciona una opcion: "
if /i "%opt%"=="1" goto opt1
if /i "%opt%"=="2" goto opt2
if /i "%opt%"=="3" goto opt3
if /i "%opt%"=="4" goto opt4
echo la opcion no es valida
pause>nul
goto menu
:opt1
set /p nomb="Buscar campo nombre: "

for /F "tokens=1,2,3 delims=:" %%a in (agenda.txt) do (
    echo %%a %%b %%c | find "%nomb%"
)
pause>nul
goto menu
:fin

obviamente solo esta hecho hasta la primera parte
pero mi problema es que no funciona tal como me lo piden

ya que el resultado seria

NOMBRE:APELLIDO:TELEFONO
y a mi me lo piden de otra manera

nombre
NOMBRE
apellido
APELLIDO
telefono
TELEFONO

no sé como extraer el %%b ni el %%c en otro echo ya que ya no es posible usar el

Código:
|echo %%b find %nomb% 

ya que ni en el segundo token ni en el tercero no hay nada que coincida con %nomb%
no se como hacerlo.... necesito ayuda, por favor
76  Programación / Programación General / Programación en batch. Comparar una cadena con un entero en: 14 Marzo 2019, 20:35 pm
Hola
estoy empezando en esto de programar, estudio primero de Asir
y tengo una duda con la programación con archivos.bat
quiero que el usuario pueda poner un valor a una variable
sé que esto se logra con un set /p
sin embargo, quiero que los valores estén restringidos solo a números, no a cadenas te textos

set /p num="dame un numero"

obvio pues si el usuario pusiese una letra
no podría hacer operaciones aritmética con dicho valor. saludos
Páginas: 1 2 3 4 5 6 7 [8]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines