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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] CMD, MS-DOS, y argumentos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] CMD, MS-DOS, y argumentos  (Leído 5,406 veces)
Beito

Desconectado Desconectado

Mensajes: 11


Ver Perfil
[BATCH] CMD, MS-DOS, y argumentos
« en: 24 Octubre 2012, 03:59 am »

Hola Hace un tiempo envie un problema y uno me dijo que el cmd es diferente al msdos , osea cual usar , para hacer bombas logicas y esas cosas que hacen en batch , necesito un programa msdos?

y bueno tengo un problema en cmd supongo

Código
  1. @echo off
  2. title ejemplo de porcentajes
  3. if %1==/help goto "ayuda" else goto "normal"
  4. :ayuda
  5. echo Esta es la ayuda
  6. echo este mensaje se mostrara si usaron el comando /help
  7.  
  8. :normal
  9. echo es aqui cuando el programa ejecuta normalmente osea sin help

no llega a ejecutar la etiqueta normal
estoy practicando eso de los parametros o porcentajes
soy novato



« Última modificación: 26 Octubre 2012, 15:53 pm por EleKtro H@cker » En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Cmd y MSdos
« Respuesta #1 en: 24 Octubre 2012, 16:31 pm »

Estas programando en Batch, que es un lenguaje de programacion por lotes, quiere decir que en realidad no es un lenguaje de programacion, sino que solo son un conjunto de comandos a realizar en Windows. De la misma forma que puedes hacer esos comandos manualmente, uno por uno en el CMD, la shell, el ms-dos, como quieras decirle, entrando en Inicio-Ejecutar: cmd.
Linux por otro lado tiene su propia shell, distinta a la de Windows, entonces ahi el lenguaje se llama Bash que tiene su parecido pero como los comandos son distintos, cambia todo.
Ya lo sabes pero ahora te lo aclare mas pienso.

Ahora te puedo decir que la proxima vez que pongas un codigo, lo hagas dentro de las etiquetas correspondiente a este codigo y existe una sección dentro de Programacion que es la programacion Scripting, ahi deberias crear los temas ya que Batch podria ser considerado como lenguaje scripting (no estructurado, linea a linea) y por eso lo ponen ahi en esa sección juntos con los otros lenguajes de programacion, pero como ya sabes Batch es un lenguaje de programacion por lotes por lo que dije hoy.

Sobre el codigo, te digo que hagas siempre de esta forma:

Código
  1. @echo off
  2. title ejemplo de porcentajes
  3.  
  4.  
  5. if "%1"=="/help" (goto :ayuda) else (goto :normal)
  6.  
  7. :ayuda
  8. echo Esta es la ayuda
  9. echo este mensaje se mostrara si usaron el comando /help
  10.  
  11. :normal
  12. echo es aqui cuando el programa ejecuta normalmente osea sin help
  13.  
  14.  

Porque si no le pasas parametro ninguno da error porque no esta definida la variable %1 que es el primero parametro que le mandas y como no enviamos nada como parametro no esta definida. Pero si le agregas las comillas obligas a que devuelva algo esa variable, y como no pasamos nada devolvera "" por lo menos y asi queda definida, aunque sea en nada, pero queda definida. Despues si pones cualquier parametro correra normal por el hecho de que si %1 sera igual a "" entonces correra el "else".

No te quedes con mi respuesta, seguramente alguien me corrige algo o te explica algo mas, saludos!


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Cmd y MSdos
« Respuesta #2 en: 26 Octubre 2012, 15:33 pm »

Código:
if %1==/help goto "ayuda" else goto "normal"
no llega a ejecutar la etiqueta normal

De la forma en que has escrito la sintaxis, si no le pasas un argumento al script entonces el argumento 1 no existe, quedará un espacio vacío y sin comillas, y el IF no puede comparar un "espacio vacio" porque siempre dará error.

En resumen, esto es lo que la CMD entiende cuando no le pasas un argumento a tu script:
Código
  1. if  ==/help goto "ayuda" else goto "normal"

Como comprenderás dará error:
Citar
Código:
No se esperaba goto en este momento.

Esto es una de las razones tán importantes de porque siempre digo que hay que usar comillas aunque parezca que no son necesarias como en el caso de los argumentos, que siempre llevan comillas dobles, pero si no existe el argumento desaparecen las comillas.

Entonces hay que hacerlo así:
Código
  1. IF "%~1" == "...." () ELSE ()

estoy practicando eso de los parametros o porcentajes
Deberías practicar primero la sintaxis, sobretodo el uso de las comillas y parentesis.

EDITO:
Cambiando de tema, La consola de Windows ha ido adoptando muchos nombres a lo largo de los años, la mayoría de la gente llama "dos" o "msdos", otros "linea de comandos", "consola", "símbolo de sistema", "bat", "batch".

Está bien llamarlo como a uno le de la gana mientras no se confundan los términos, MS-DOS es un sistema operativo por linea de comandos de la decada de los años 80, lo que tu estás aprendiendo proviene de ese SO, que se ha ido actualizando/transformando desde un completo sistema operativo de los 80, a un pequeño complemento más de Windows de hoy en día, la CMD.

http://es.wikipedia.org/wiki/DOS

uno me dijo que el cmd es diferente al msdos , osea cual usar , para hacer bombas logicas y esas cosas que hacen en batch , necesito un programa msdos
Con una versión real de MS-dos solo podrías hacer un "DIR" y poco más, creo que queda claro con la explicación de antes.

Saludos
« Última modificación: 26 Octubre 2012, 15:52 pm por EleKtro H@cker » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Argumentos en olly
Ingeniería Inversa
Darklight3 3 3,035 Último mensaje 5 Agosto 2009, 23:02 pm
por KJD
[Solucionado] [ Batch ] Problema con argumentos :/
Scripting
SuperDraco 7 5,580 Último mensaje 3 Abril 2011, 02:27 am
por leogtz
[BATCH] Duda Shift, Y ¿Como saber cuantos argumentos necesito? [Solucionado] « 1 2 »
Scripting
SuperDraco 11 8,981 Último mensaje 8 Julio 2011, 23:12 pm
por leogtz
argumentos del main?
Programación C/C++
<<<-Basura->>> 4 6,067 Último mensaje 12 Octubre 2011, 08:43 am
por <<<-Basura->>>
[ Batch] (Solucionado) Problema sobre argumentos %1
Scripting
Eleкtro 5 4,534 Último mensaje 6 Noviembre 2011, 19:40 pm
por leogtz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines