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
| | |-+  Ejercicio batch, ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio batch, ayuda  (Leído 2,120 veces)
jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Ejercicio batch, ayuda
« en: 28 Enero 2016, 11:17 am »

Hola, necesito una pequeña ayudita con un batch que no se como hacerlo...
la cosa es que tenemos que hacer un batch que cuente los parametros que le pases desde cmd , te muestre cuantos parametros has introducido y hacer que el usuario pueda elegir que parametro quiere ver. La primera parte y la segunda ya la hice y funcionan bien pero la ultima no se como hacerla. codigo:


Código:
@echo off
setlocal enabledelayed expansion
set cuenta=0
for %%i in (%*) do (
           set /a cuenta=!cuenta!+1
)

Has introducido %cuenta% parametros
pause>nul

rem Y aqui la tercera parte donde el usuario puede elegir que parametro desea ver el 1 el 3 o el 58 no importa. No se puede usar for/f.

Gracias


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Ejercicio batch, ayuda
« Respuesta #1 en: 28 Enero 2016, 11:58 am »

Puedes hacerlo de la siguiente manera:

Código:
@Echo Off & SetLocal EnableDelayedExpansion

Set    "values="
Set /A "index=0"

for %%# in (%*) Do (
    Set /A "index+=1"
    Set    "values=!values!!index!"
    Set    "arg!index!=%%~#"
)

Echo:Se han recibido [%index%] argumentos.
Echo+
Choice /C "%values%" /M "Seleccione un argumento..."
Echo:Valor: "!arg%ErrorLevel%!" | More

Pause&Exit /B 0

Resultado de ejecución:
Código:
.\Script.cmd "q" w "e" r "  t  " y.

Código:
Se han recibido [6] argumentos.

Seleccione un argumento... [1,2,3,4,5,6]?1
Valor: "q"

Presione una tecla para continuar . . .

PD: No se si forma parte del ejercicio pero ten en cuenta que al habilitar la expansión de variables cualquier símbolos de exclamación ! será ignorado en los argumentos recibidos por linea de comandos; para solucionarlo deberías utilizar el comando Call en la asignación de variables (duplicando el símbolo de variable % según la recursividad actual, para que funcione).

Saludos


« Última modificación: 28 Enero 2016, 12:09 pm por Eleкtro » En línea

jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Ejercicio batch, ayuda
« Respuesta #2 en: 28 Enero 2016, 12:17 pm »

Puedes hacerlo de la siguiente manera:

Código:
@Echo Off & SetLocal EnableDelayedExpansion

Set    "values="
Set /A "index=0"

for %%# in (%*) Do (
    Set /A "index+=1"
    Set    "values=!values!!index!"
    Set    "arg!index!=%%~#"
)

Echo:Se han recibido [%index%] argumentos.
Echo+
Choice /C "%values%" /M "Seleccione un argumento..."
Echo:Valor: "!arg%ErrorLevel%!" | More

Pause&Exit /B 0

Resultado de ejecución:
Código:
.\Script.cmd "q" w "e" r "  t  " y.

Código:
Se han recibido [6] argumentos.

Seleccione un argumento... [1,2,3,4,5,6]?1
Valor: "q"

Presione una tecla para continuar . . .

PD: No se si forma parte del ejercicio pero ten en cuenta que al habilitar la expansión de variables cualquier símbolos de exclamación ! será ignorado en los argumentos recibidos por linea de comandos; para solucionarlo deberías utilizar el comando Call en la asignación de variables (duplicando el símbolo de variable % según la recursividad actual, para que funcione).

Saludos




@Elektro esta bien pero el problema es que no podemos usar ningun comando o argumento que no hayamos usado en clase como por ejemplo

Choice /C "%values%" /M "Seleccione un argumento..."
%%~# ni esto
| More ni esto tampoco, asi que... pues no se como hacerlo
pero me podrias explicar que hace esto?: %%~#
esto: Echo:Valor: "!arg%ErrorLevel%!" | More, gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicio BATCH
Scripting
ne0x 1 2,826 Último mensaje 11 Mayo 2007, 17:05 pm
por ne0x
Ejercicio BATCH
Ejercicios
ne0x 1 8,023 Último mensaje 11 Mayo 2007, 17:01 pm
por ne0x
Programacion batch ejercicio
Scripting
cnxi 4 8,874 Último mensaje 15 Diciembre 2011, 01:41 am
por leogtz
Duda-- problema con ejercicio en batch
Scripting
estebankpo15 9 7,041 Último mensaje 23 Septiembre 2013, 05:44 am
por estebankpo15
[AYUDA][BATCH] Usar echo vacio en BATCH sin que diga que esta desactivado?
Scripting
Noxware 2 8,166 Último mensaje 6 Mayo 2014, 17:46 pm
por PedroDJavier
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines