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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con código Bash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con código Bash  (Leído 2,183 veces)
bilbo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda con código Bash
« en: 23 Septiembre 2019, 16:51 pm »

Hola, buenas. Me estoy adentrando en esto del scripting en batch y aún soy muy novato y seguro que el problema que tengo es una tontería, pero no logro dar con él. Estoy haciendo un código que hace que introduzcas un número y después te imprima por consola la tabla de multiplicar de ese número, pero hay algo que no me sale y no se por qué.

Este es el código
Código
  1. @echo off
  2. echo Bienvenido
  3. set /p n= Introduce un numero
  4.  
  5. for %%x in ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ) do (
  6. set /a z= %n% * %%x
  7. echo %z%
  8. )
  9. pause

Este es el fallo que da





« Última modificación: 23 Septiembre 2019, 16:56 pm por bilbo » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.057



Ver Perfil
Re: Ayuda con código Bash
« Respuesta #1 en: 23 Septiembre 2019, 18:12 pm »

Saludos,

- Primero, no confundir Bash de Linux con Batch de Windows.

- Segundo, recuerda que tienes la ayuda del mismo CMD, utilizando por ejemplo:

Código
  1. Set /?

- En la ayuda muestra que Batch tiene una deficiencia en la actualización de variables dentro de bucles For, estos no se actualizan hasta que el bucle finalice. Para actualizar variables dentro de los bucles puedes usar EnableDelayedEspansion y cambiar %z% por !z!

-- He puesto solo a en lugar de %a% en el Set /a, ya que cuando se usa Set /a no es necesario encerrar a las variables entre %, Set /a siempre intentará resolver cualquier valor no numérico que tenga que operar ya que está hecho para operar números y no debería haber texto a no ser que sean nombres de variables.

Código
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. echo Bienvenido
  4. set /p n="Introduce un numero: "
  5.  
  6. for %%x in ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ) do (
  7. set /a z= n * %%x
  8. echo !z!
  9. )
  10.  

Citar
Bienvenido
Introduce un numero: 7
7
14
21
28
35
42
49
56
63
70
Presione una tecla para continuar . . .

- Referencias: https://ss64.com/nt/delayedexpansion.html


En línea

bilbo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda con código Bash
« Respuesta #2 en: 23 Septiembre 2019, 19:37 pm »

Perfecto, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Script]Volver atras, Codigo Bash
Scripting
punkacs 2 7,637 Último mensaje 27 Abril 2012, 04:37 am
por leogtz
[Bash Script] Ayuda por favor. Donde falla esta linea de codigo.
Scripting
legolas266 1 2,268 Último mensaje 31 Mayo 2013, 13:11 pm
por legolas266
[BASH] Ayuda urgente con codigo
Scripting
kaskull 2 2,042 Último mensaje 8 Enero 2014, 17:48 pm
por -Myx-
[BASH] Ver codigo fuente de pagina con login.
Scripting
Hekaly 3 2,905 Último mensaje 15 Marzo 2016, 10:53 am
por Hekaly
[Bash] Obtener código fuente de pagina web
Scripting
Hekaly 1 3,166 Último mensaje 9 Agosto 2016, 15:57 pm
por dopr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines