CMD

CMD
Las publicaciones en este blog estan exclusivamente redactadas por los autores, excepto citas. Todos los codigos aqui indicados han sido previamente probados

martes, 25 de noviembre de 2014

Tutorial 1.3 - Juego de preguntas

Hola! En este post les traemos la tercera parte del tutorial del juego de preguntas. En este tutorial veremos como crear las ultimas 5 preguntas, mencionadas en el tutorial anterior. Para esto utilizaremos el comando "set /p". Como en el tutorial anterior, las palabras en rojo son las que se pueden cambiar, y las amarillas son las respuestas posibles. Acá va el código:

set nivel=11
:preg11
set /p pregunta1=pregunta
if %pregunta1%==respuestabien goto bien2
if not %pregunta1%==respuestabien goto mal2
:preg12
set /p pregunta2=pregunta
if %pregunta1%==respuestabien goto bien2
if not %pregunta1%==respuestabien goto mal2
:preg13
set /p pregunta3=pregunta
if %pregunta1%==respuestabien goto bien2
if not %pregunta1%==respuestabien goto mal2
:preg14
set /p pregunta4=pregunta
if %pregunta1%==respuestabien goto bien2
if not %pregunta1%==respuestabien goto mal2
:preg15
set /p pregunta5=pregunta
if %pregunta1%==respuestabien goto bien2
if not %pregunta1%==respuestabien goto mal2
:bien2
cls
set /a nivel=%nivel%+1
set /a respuestascorrectas=%respuestascorrectas%+1
if %nivel%==11 goto preg12
if %nivel%==12 goto preg13
if %nivel%==13 goto preg14
if %nivel%==14 goto preg15
if %nivel%==15 goto ganaste
:mal2
if %vidas%==1 goto perdiste
set /a vidas=%vidas%-1
if %nivel%==11 goto preg11
if %nivel%==12 goto preg12
if %nivel%==13 goto preg13
if %nivel%==14 goto preg14
if %nivel%==15 goto preg15
:ganaste
cls
echo.        /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
echo.        ^|      G A N A S T E       ^ |
echo.        \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
echo.        La parte que va aqui, incluyendo la tabla de jugadores sera explicada en el tutorial 1.4
echo.        Presione una tecla para salir
pause > nul
exit

En este codigo, la respuesta correcta se debe escribir en las dos lineas que estan abajo de los comandos "set /p", asi;

:pregx
set /p preguntax=Como se llama el sistema operativo creado por Microsoft?
if %pregunta1%==Windows goto bien2
if not %pregunta1%==Windows goto mal2
Le estamos diciendo al codigo que si la respuesta (o variable "%pregunta1%", que es lo mismo) es igual a "Windows" vaya al label que sube de nivel, en cambio, si la variable no es igual va hacia el label "mal2"

Comando "attrib"

Este comando agrega y quita atributos a archivos especificados, por ejemplo:

attrib -s %windir%/system32/shell32.dll

Este codigo quita el atributo de "archivo del sistema" al archivo "shell32.dll"
La sintaxis es:
attrib +atributo -atributo rutadearchivo/nombredearchivo(s)
El (+) y (-) sirven para agregar y quitar atributos, respectivamente.
Los parametros/atributos son:

R (solo lectura)
A (archivo de almacenamiento)
S (archivo de sistema)
H (archivo oculto)
I (archivo no indizado). (Comentario: este atributo no lo recomiendo, ya que tenia una carpeta con los archivos ordenados por fecha, con este atributo les quite la fecha a todos y ahora me quedaron todos desorganizados)
/s (procesa todos los archivos de la carpeta)
/d (tambien procesa carpetas)

No es de mucha utilidad, pero por las dudas hay que tenerlo en cuenta.

Secciones de Variables

Cuando queremos mostrar la hora actual de la maquina, no podemos escribir nuestra hora, si queremos que vaya cambiando. Usamos variables como antes las que hemos explicado.

%time% muestra la hora
%date% muestra la fecha

¿Pero si querémos solo mostrar la hora, o solo los minutos, o la hora y los minutos, sin segundos, o solo el més, o solo el día y el més?

Le haremos esto:
%time:~3,2% → Esto solo mostrara los minutos
%time:~6,2% → Solo los segundos
%time:~2,1% → Trollero: Solo muestra ":"

¿Que pasa? el :~2,1 hace que se muestren a partir del 2° caracter, un unico numero, el siguiente del segundo
Si fuese :~6,2 (segundos) muestra a partir del sexto caracter (:), muestre dos caracteres.
Si fuese :~6,3, quedarian los segundos y una coma, ya que despues de los segundos van los milisegundos
Se puede ver la diferencia aquí.
Y este uso particular de las variables sirve con cualquier variable:

Aquí los dejamos para que experimenten, y si tiene alguna duda, consulte en los comentarios. Gracias :D