<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JaLeRu Blog &#187; Programacion</title>
	<atom:link href="http://jestudio.cl/blog/tag/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://jestudio.cl/blog</link>
	<description></description>
	<lastBuildDate>Mon, 17 Jan 2011 22:16:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Tutorial: PHP, SQL y Bases de Datos</title>
		<link>http://jestudio.cl/blog/php-sql-y-bases-de-datos/</link>
		<comments>http://jestudio.cl/blog/php-sql-y-bases-de-datos/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 19:45:27 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Datos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=704</guid>
		<description><![CDATA[A la hora de hacer grandes proyectos en PHP necesitaremos almacenar y tener clasificados muchos datos en algún lugar. Las Cookies solo nos sirven para almacenar datos temporalmente, y solo es visible para el visitante. Guardar la información en archivos de texto por otro lado resultaría imposible de leer en caso de que tuviéramos muchos [...]]]></description>
			<content:encoded><![CDATA[<p>A la hora de hacer grandes proyectos en PHP necesitaremos almacenar y tener <a href="http://www.mundoanuncio.cl/">clasificados</a> muchos datos en algún lugar. Las Cookies solo nos sirven para almacenar datos temporalmente, y solo es visible para el visitante. Guardar la información en archivos de texto por otro lado resultaría imposible de leer en caso de que tuviéramos muchos datos, sin contar que la seguridad de estos datos seria muy mala.<br />
Para facilitar el almacenamiento de información existen las <strong>Bases de Datos</strong>.</p>
<h2>¿Que son las Bases de Datos?</h2>
<p>Son espacios donde se pueden guardar en formato de tablas grandes cantidades de datos. Las Bases de Datos se ordenan de la siguiente Manera:</p>
<div id="attachment_708" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-708" title="BasesDeDatos" src="http://jestudio.cl/blog/wp-content/uploads/2009/11/BasesDedatos.jpg" alt="Bases De Datis" width="500" height="190" /><p class="wp-caption-text">Bases De Datos</p></div>
<p>Cada Base de Datos cuenta con una serie de tablas y cada tabla tiene diferentes campos<em> (fields)</em> y a su vez estos campo tiene propiedades y valores.  Le llamaremos <strong>Registro</strong> a este conjunto de campos que conforman una tabla.<br />
De esta manera si visualizamos una Tabla de una Base de Datos la veríamos así.</p>
<p></br><br />
</br></p>
<table border="1" >
<tbody>
<tr>
<td></td>
<td>Campo1</td>
<td>Campo2</td>
<td>Campo3</td>
</tr>
<tr>
<td>1 Registro</td>
<td>Valor</td>
<td>Valor</td>
<td>Valor</td>
</tr>
<tr>
<td>2 Registro</td>
<td>Valor</td>
<td>Valor</td>
<td>Valor</td>
</tr>
</tbody>
</table>
<p></br><br />
De esta manera cada vez que insertemos datos dentro de una tabla se irá creando una nueva columna con los datos. Por ejemplo si tuviésemos una tabla que guardara el nombre, el apellido y la edad de distintas personas la visualizaríamos así luego de que 3 personas hallan ingresado sus datos:</p>
<p></br><br />
</br></p>
<table border="1">
<tbody>
<tr>
<td></td>
<td>Nombre</td>
<td>Apellido</td>
<td>Edad</td>
</tr>
<tr>
<td>1º</td>
<td>Javier</td>
<td>Letelier</td>
<td>17</td>
</tr>
<tr>
<td>2º</td>
<td>Jaime</td>
<td>Ruiz</td>
<td>52</td>
</tr>
<tr>
<td>3º</td>
<td>Pedro</td>
<td>Troemel</td>
<td>26</td>
</tr>
</tbody>
</table>
<p></br></br></p>
<h2>Tipos de Bases de datos:</h2>
<p>Existen diferentes tipos de Bases de datos, entre estos podemos destacar:</p>
<ul>
<li> Oracle</li>
<li> Mysql</li>
<li> MS SQL Server</li>
<li> Acces</li>
</ul>
<p>Cada una con sus ventajas y desventajas.</p>
<h2>Diseñar Bases de Datos:</h2>
<p>Al momento de idear como estará ordenada nuestra base de datos, cuantas tablas, cuantos campos o para que usaremos tablas y no campos etc&#8230; deberemos intentar hacerlo de la mejor manera y es aquí donde más tiempo le debemos dar antes de comenzar cualquier proyecto. La Base de Datos debe ser ordenada y estar pensada para poder acceder a los datos de la manera más cómoda posible. Pensando bien una base de datos desde un principio nos ahorraremos problemas luego.<br />
</br></br><br />
En fin una Base de Datos nos puede ser de gran utilidad al momento de hacer paginas web mucho más dinámicas y ahorrarnos un montón de trabajo.<br />
</br></br></p>
<h2>SQL</h2>
<p>Si bien ahora sabemos que es una base de Datos debemos aprender como ingresar datos a esta y manejarlos. Para la interacción con Bases de Datos usamos el Lenguaje SQL<em> (Lenguaje de Consultas Estructurado o Structured Query Lenguage)</em>. Este lenguaje es Estándar por ello es soportado por casi todos los tipos de bases de datos.</p>
<p>SQL como dice su nombre funciona a través de Consultas o Querys que no son más que ordenes o preguntas que se le dan a una Base de Datos para que agregue datos o nos los dé.</p>
<h2>Funciones Básicas de SQL:</h2>
<p></br></br><br />
<strong>Crear Base de datos:</strong></p>
<p><code>CREATE DATABASE nombrebase;</code></p>
<p><cite>Ocuparemos mayúsculas para denotar cuales son las palabras claves de el lenguaje, y minúsculas para las variables y datos ingresados.  Pero realmente no importa por que SQL no distingue entre mayúsculas y minúsculas, pero si es una buena practica para facilitar la lectura.</cite><br />
</br></br><br />
<strong>Borrar Base de Datos:</strong></p>
<p>Una vez creada una base de datos podremos borrarla con todas sus tablas e información.</p>
<p><code>DROP DATABASE nombrebase;</code></p>
<p><strong>Usar Base de Datos:</strong></p>
<p>Cuando queramos trabajar con alguna base primero deberemos especificar en cual, para ello usamos:<br />
<code>USE nombrebase;</code></p>
<p>de ahí en adelante todo lo que escribamos será aplicado sobre la Base de datos <strong><em>&#8220;nombrebase&#8221;</em></strong>.<br />
</br></br><br />
<strong>Crear Tablas:</strong></p>
<p>Antes de leer el siguiente código, te aviso que no debes asustarte a pesar de que se ve algo más complicado es bastante simple.<br />
<code><br />
CREATE TABLE nombretabla ( campo1 int(6) auto_increment, campo2 varchar(50)  NOT NULL, campo3 varchar(4) NULL, PRIMARY KEY (campo1) );</code></p>
<p>Esto creará una Tabla dentro de de la base anteriormente especificada con USE, esta tabla tendrá los campos:</p>
<ul>
<li><strong>campo1</strong>, que soportara datos enteros <em>(int) </em>de 6 caracteres y se auto-incrementará lo que quiere decir que es un campo que se completa solo con un valor que aumenta a medida que más datos se ingresen.</li>
<li><strong>campo2 </strong>que soporta texto de máximo 50 caracteres y no puede estar vacía (no puede ser nula)</li>
<li><strong>campo3 </strong>que puede ser nulo, y que soporta una cadena de texto de máximo 4 caracteres.</li>
</ul>
<p>Además se especifica que el campo1 sera la clave primaria, lo que quiere decir que es campo que encabeza esa tabla.<br />
</br></br><br />
<strong>Insertar datos en una tabla (Crear un Registro):</strong></p>
<p>Al insertar datos en una tabla nos crea un nuevo registro, que seria como una nueva fila en la tabla. Siendo cada columna un campo. Como en el ejemplo del principio donde 1º, Javier, Letelier 17 era un Registro y 2º,  Jaime Ruiz, 52 era otro.<br />
<code><br />
INSERT INTO nombretabla (campo1, campo2, campo3) VALUES ('valor_campo1','valor_campo2','valor_campo3');<br />
</code><br />
Como vemos los datos se agregan primero especificando la tabla y los campos a rellenar en orden. Luego los valores de cada campo en el mismo orden. En caso de que esta tabla fuese la misma del ejemplo anterior, no sería necesario rellenar el campo1 ya que es de auto-incremento y se podría omitir al igual que el campo3 que puede ser nulo.<br />
</br></br><br />
<strong>Borrar una tabla:</strong></p>
<p>Casi igual que para borrar Bases de datos.<br />
<code>DROP TABLE nombretable;</code><br />
</br></br><br />
<strong>Consultar:</strong></p>
<p>Luego de que tenemos todos nuestros datos guardados en una tabla lo más seguro es que luego necesito consultarle a la tabla cuales son los datos que esta tiene para esto tenemos diferentes formas.<br />
</br></br><br />
<strong>Seleccionar:</strong></p>
<p><code>SELECT campo1, campo2 FROM nombretabla;</code></p>
<p>Esto nos devolverá todos los datos ingresados en los campos campo1 y campo2 de la tabla nombretabla</p>
<p>Si quisiéramos que nos mostrase TODOS los campos podemos usar el comodín<strong> *</strong></p>
<p><code>SELECT * FROM nombretabla;</code></p>
<p>lo que nos devolvería todos los datos ingresados en todos los campos.</p>
<p>así mismo podemos filtrar las búsquedas para que nos devuelven campos que cumplan ciertas condiciones.</p>
<p><code>SELECT * FROM nombretabla WHERE campo1="Condición";</code></p>
<p>Esta consulta nos dará como resultado todos los datos de cualquier campo de la tabla<strong> nombretabla</strong> que cumplan la condición de que su campo1 tenga el valor <strong>Condición</strong></p>
<p>También se puede usar la palabra LIKE para encontrar resultados que no sean idénticos a lo pedido, si no que solo lo contengan.<br />
<code>SELECT *  FROM nombretabla WHERE campo1 LIKE  "%plo%";</code></p>
<p>como vemos usamos el signo %, que sirve para indicar un &#8220;comodín&#8221; lo que quiere decir que si ponemos un % antes de la condición se encontraran todos los que terminen en la condición. Si lo tiene al final todas las que comiencen, y si la tiene a los dos lados, no importa donde se encuentre.<br />
Por ejemplo:<br />
%plo% nos devolvería cualquier campo1 que contenga cosas como palabra &#8220;Plomero, Ejemplo, aplomar&#8221; etc..<br />
si fuera %plo, solo nos encontraria &#8220;Ejemplo, Templo, Contemplo&#8221;, si fuese plo% nos encontraría solo los que tuviesen &#8220;Plomero, Plomo&#8221; y por ultimo si fuese a%to% nos encontraria palabras como &#8220;Anatomico, Atomico, Atontado, Amatorio, Ato&#8221;<br />
</br></br><br />
<strong>Borrar datos de una tabla (Borrar un Registro) </strong></p>
<p>Para<strong> </strong>borrar un registro ocupamos DELETE, como vemos debemos especificar que borrar para ello ocupamos una condición.Aquí es cuando los campo &#8220;Auto-increment&#8221; comienzan a ser muy útiles, ya que siempre estos campos tendrán un valor único (Ningún registro más que el mismo tendrán ese numero que se da por el orden en que fueron ingresados) Así podremos borrar un registro especifico.</p>
<p><code>DELETE FROM nombretabla WHERE campo1="Condición";</code></p>
<p>Y para borrar uno especifico:<br />
<code>DELETE FROM nombretabla WHERE campoautoincrement=2;</code></p>
<p>De esta manera nos borrara el registro numero 2.<br />
</br></br><br />
<strong>Actualización y edición de datos (Edición de un registro)</strong>:</p>
<p>Cuando necesitemos actualizar los datos de algun registro, por ejemplo por que alguien cambio su numero de telefono, o desea cambiar su avatar necesitaremos cambiar ese registro.<br />
<code>UPDATE nombretabla SET campo1 = "Nuevo valor", campo2 = "Nuevo valor2" WHERE campo1="Condición";</code></p>
<p>Al igual que al borrar datos, nos será muy util usar campos de auto incremento para reconocer registros únicos. Por ejemplo ocupando nuevamente la tabla del ejemplo de las Bases de Datos si quisiéramos cambiar la edad de Pedro podríamos usar:<br />
<code><br />
UPDATE nombretabla SET edad="27" WHERE nombre="Pedro";</code><br />
y para evitar que podamos cambiar tal vez la edad de otra persona también llamada Pedro seria mejor usar:<br />
<code>UPDATE nombretabla SET edad="27" WHERE id="3";</code></p>
<h2>PHP y SQL</h2>
<p>Por fin! ahora podremos desde PHP modificar, crear, actualizar, etc&#8230; nuestras bases de datos.<br />
A pesar de que PHP soporta conexión con la gran mayoría de los tipos de bases de datos nosotros hablaremos solo de la conexión con las de tipo MySQL, pero no te sientas tan excluido si no es la que usas tu. Ya que la manera de usarlas es prácticamente igual cambiando tal vez una que otra palabra, busca en Google cuales serian los reemplazos de las funciones.  Por ejemplo una función para conectarse a SyBase es <strong>sybase_connect(</strong>) mientras que la de Mysql es <strong>mysql_connect();</strong> como vez no es muy grande la diferencia.<br />
</br></br><br />
<strong>Conectarnos al Servidor</strong></p>
<p>Antes que nada debemos conectarnos al servidor para poder realizar cualquier modificación de nuestra base de datos.<br />
<code>mysql_connect("Servidor","usuario","contraseña");<br />
</code><br />
pero es importante que deberemos dejar la conexión dentro de una variable para poder despues usarla con mayor facilidad.<br />
<code><br />
$conexion=mysql_connect("localhost","myuser","mypass");<br />
</code><br />
<strong> </strong><br />
</br></br><br />
<strong>Desconectandonos del Servidor</strong></p>
<p>Una vez que hayamos hecho todo lo que necesitábamos deberemos desconectarnos del Servidor, para ello usaremos la funciona <strong>mysql_close()</strong> dándole como valor nuestra conexión.<br />
<code><br />
$conexion=mysql_connect("localhost","myuser","mypass");<br />
mysql_close($conexion);<br />
</code><br />
<strong> </strong><br />
</br></br><br />
<strong>Seleccionar Base de Datos.</strong><br />
Es común que se tengan más de una base de datos, por ello deberemos luego seleccionar cual es la base de datos con la cual trabajaremos. Usaremos la función <strong>mysql_select_db() </strong>y se le dan como valores el nombre de la base de datos y la conexión a la base de datos.<br />
<code><br />
$conexion=mysql_connect("localhost","myuser","mypass");<br />
mysql_select_db("nombreBaseDeDatos",$conexion);<br />
mysql_close($conexion);<br />
</code><br />
<strong> </strong><br />
</br></br><br />
<strong>Realizar una consulta</strong></p>
<p>Ahora lo más importante, como realizar cualquier clase de consulta a través de PHP.<br />
Para ello usaremos la función <strong>mysql_query() </strong>y le daremos como valores la consulta misma en SQL y la conexión.<br />
Siempre que esperemos resultados de nuestra consulta deberemos almacenarla en una variable, para después poder acceder a los resultados.<br />
<code><br />
$conexion=mysql_connect("localhost","myuser","mypass");<br />
mysql_select_db("nombreBaseDeDatos",$conexion);<br />
$resultados = mysql_query("SELECT * FROM nombretabla WHERE campo1='condición';",$conexion);<br />
mysql_close($conexion);</code><br />
</br></br><br />
<strong>Obtener datos de la consulta:</strong></p>
<p>Muchas veces nuestras consultas nos darán respuestas, ya sean tablas completas o numero de resultados para ello contamos con las siguientes funciones.</p>
<p><strong>mysql_num_rows(<em>$resultados</em>); </strong> Nos dará el numero de registros obtenidos por nuestra consulta.</p>
<p><strong>mysql_result($resultado, <em>registro</em>, <em>campo</em>);</strong> Nos dará el valor que tenga el campo de un registro. Su uso es colocando números por ejemplo si ocupamos <em>mysql_result($resultado, 2,4)</em> nos dara el valor del campo que esta en la posición numero<strong> 5<em> </em></strong><em>(4+1) </em>de el registro encontrado numero <strong>3</strong><em> (2+1) </em>.<br />
</br><br />
Bueno existen muchas otras funciones que nos permitirán ver los datos en forma de Arrays, saber los nombres de los campos, tipos de datos, crear o borrar Bases etc&#8230; Les dejare aquí una pequeña lista sin especificar mucho como se usan, pero de seguro realizando una búsqueda en Google de dicha función encontraran la manera correcta de usarla.</p>
<ul>
<li><strong>mysql_fetch_array(<em>$resultado</em>)</strong> = Crea un array con los resultados.</li>
<li><strong>mysql_field_name(<em>$resultado</em>, <em>campo</em>)</strong> = Nos da el nombre de un campo.</li>
<li><strong>mysql_field_type(<em>$resultado</em>, <em>campo</em>)</strong> = Nos da el tipo de dato que almacena el campo.</li>
<li><strong>mysql_errno()</strong> = Numero del ultimo error dado.</li>
<li><strong>mysql_error() </strong>= Nos da el ultimo mensaje de error dado.</li>
<li><strong>mysql_create_db(<em>&#8220;NombreBaseNueva&#8221;</em>, <em>$conexion</em>) </strong>= Crea una nueva base de datos.</li>
<li><strong>mysql_drop_db(<em>&#8220;Nombrebase&#8221;</em>,<em>$conexion</em>) </strong>= Borra una base.</li>
<li><strong>mysql_free_result(<em>$resultados</em>)</strong>= Libera la memoria de resultados.</li>
</ul>
<p></br></br><br />
Espero que esto haya sido de utilidad, realmente este tutorial no es más que una pincelada de lo mucho que se puede aprender. Con esto entenderán las bases, pero aun queda mucho por aprender. Busca en Google y documentate. </p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/php-sql-y-bases-de-datos/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Video: 100 años de Efectos Especiales.</title>
		<link>http://jestudio.cl/blog/video-100-anos-de-efectos-especiales/</link>
		<comments>http://jestudio.cl/blog/video-100-anos-de-efectos-especiales/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 17:19:15 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Cine]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Disculpas]]></category>
		<category><![CDATA[Efectos especiales]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=678</guid>
		<description><![CDATA[Queridos lectores, después de tanto tiempo sin publicar nada les dejo este vídeo que a mi parecer es espectacular e inspirador. Lo vi en Aeromental, uno de los mejores blog de latino américa sin duda. El vídeo esta muy bien cuidado, la música le va muy bien, me gusta como no solo muestran los efectos [...]]]></description>
			<content:encoded><![CDATA[<p>Queridos lectores, después de tanto tiempo sin publicar nada les dejo este vídeo que a mi parecer es espectacular e inspirador. Lo vi en <a title="Aeromental - 100 años de Efectos Especiales en video" href="http://www.aeromental.com/2009/08/21/recopilacion-de-100-anos-de-efectos-especiales-en-el-cine/">Aeromental</a>, uno de los mejores blog de latino américa sin duda.<br />
El vídeo esta muy bien cuidado, la música le va muy bien, me gusta como no solo muestran los efectos si no que como seria la escena sin ellos para luego ir transformándola en la que nosotros vemos en los cines.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/LP_hAszQPgk&amp;hl=es&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="300" src="http://www.youtube.com/v/LP_hAszQPgk&amp;hl=es&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
Como un agregado extra, les quiero pedir perdón a todos los que tienden a leerme.  Muy poco motivado por actualizar el blog he estado por que digamos que el colegio es mi primera prioridad, después mi vida, mis aficiones y luego el blog para el que no me queda tiempo. Además tengo malas noticias para los que seguían el <strong>curso de programación de juegos</strong>, <strong>jia200x</strong> el genio tras las publicaciones esta muy ocupado estudiando preparándose para su prueba de selección universitaria (PSU) por lo que no tiene tiempo ni para practicar sus mayores hobbys.<br />
Puede que<strong> jestudio.cl</strong>, cambie su enfoque que a tenido últimamente para transformarse en una pagina web algo diferente.</p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/video-100-anos-de-efectos-especiales/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Hora del Planeta, asegurar que nuestro PC se apague.</title>
		<link>http://jestudio.cl/blog/hora-del-planeta-asegurar-que-nuestro-pc-se-apague/</link>
		<comments>http://jestudio.cl/blog/hora-del-planeta-asegurar-que-nuestro-pc-se-apague/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 21:16:51 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Hora del planeta]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=655</guid>
		<description><![CDATA[Como muchos saben hoy es la hora del planeta, así que les dejo una pequeña recomendación para asegurarnos de que nuestro PC se apague, incluso si nosotros no estamos en casa. Para ello sigan los siguientes pasos: (Solo probado en XP, no se si funcione en Vista) 1. Shell de Comandos. Lo primero que haremos [...]]]></description>
			<content:encoded><![CDATA[<p>Como muchos saben hoy es la hora del planeta, así que les dejo una pequeña recomendación para asegurarnos de que nuestro PC se apague, incluso si nosotros no estamos en casa.<br />
Para ello sigan los siguientes pasos:</p>
<p><em>(Solo probado en XP, no se si funcione en Vista)</em><br />
<strong>1. Shell de Comandos.<br />
</strong>Lo primero que haremos sera ir a <strong>Inicio-&gt;Ejecutar </strong>y luego escribiremos <strong>CMD</strong> y presionamos ENTER.</p>
<p><strong>2. Ingresando Comandos.</strong></p>
<p>En la ventana que nos aparece escribiremos:<br />
<code>at 20:20 shutdown -s -t 600 -c "El PC se esta apagando, tienes 10 minutos para guardar todo lo necesario"<br />
</code><br />
y presionamos ENTER.</p>
<p>De esta manera, a las 20:20 horas, nuestro pc nos avisara que se apagara en 10 minutos.<em> (Por si llega a agarrar por sorpresa a alguien, este podrá guardar las cosas que este haciendo)<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/hora-del-planeta-asegurar-que-nuestro-pc-se-apague/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Guía de Programación de Vídeo Juegos, Capitulo 2.</title>
		<link>http://jestudio.cl/blog/guia-de-programacion-de-video-juegos-capitulo-2/</link>
		<comments>http://jestudio.cl/blog/guia-de-programacion-de-video-juegos-capitulo-2/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 22:32:47 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[guia]]></category>
		<category><![CDATA[jiax200]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=645</guid>
		<description><![CDATA[Lo prometido es un hecho, la segunda parte de la Guía de Programación de Vídeo Juegos. En esta profundizaremos más en la mecánica de un juego, como es las colisiones y la animación. Descarga la 2º Parte en PDF Recuerdo que todo esta en un Pseudocódigo, por lo cual si tienen dudas y quieren saber [...]]]></description>
			<content:encoded><![CDATA[<p>Lo prometido es un hecho, la <strong>segunda parte</strong> de la Guía de Programación de Vídeo Juegos.<br />
En esta profundizaremos más en la mecánica de un juego, como es las colisiones y la animación.</p>
<ul>
<li><a title="PDF Guía de programación de Videojuegos." href="http://www.jestudio.cl/archivos/VideoJuegos_2.pdf">Descarga la 2º Parte en PDF</a></li>
</ul>
<p>Recuerdo que todo esta en un Pseudocódigo, por lo cual si tienen dudas y quieren saber más menos como se hace en algún lenguaje en especifico no duden en comentar su pregunta.</p>
<p>Las partes anteriores:</p>
<ul>
<li><a href="http://jestudio.cl/blog/guia-de-programacion-de-videojuegos/">Capitulo Nº 1</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/guia-de-programacion-de-video-juegos-capitulo-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Guia de Programacion de Videojuegos.</title>
		<link>http://jestudio.cl/blog/guia-de-programacion-de-videojuegos/</link>
		<comments>http://jestudio.cl/blog/guia-de-programacion-de-videojuegos/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 00:40:47 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[guia]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=637</guid>
		<description><![CDATA[Como fruto de la genialidad de nuestro nuevo colaborador jia200x y un poco de mi ayuda. Les presentamos a todos los lectores del blog y a los interesados en la Programación de Videojuegos esta excelente guía de la cual podrán aprender los puntos básicos y luego no tan básicos de este &#8220;arte&#8221;. Explicaciones simples y [...]]]></description>
			<content:encoded><![CDATA[<p>Como fruto de la genialidad de nuestro nuevo colaborador<strong> jia200x</strong> y un poco de mi ayuda. Les presentamos a todos los lectores del blog y a los interesados en la Programación de Videojuegos esta excelente guía de la cual podrán aprender los puntos básicos y luego no tan básicos de este<em> &#8220;arte&#8221;</em>. Explicaciones simples y claras.<br />
Aquí les dejo el primer Capitulo, el segundo pronto lo publicare y esperamos que no nos quedemos solo con esos.</p>
<ul>
<li><a title="Capitulo 1" href="http://www.jestudio.cl/archivos/VideoJuegos_1.pdf"><strong>Descargar primer Capitulo en PDF<br />
</strong></a></li>
</ul>
<p>Esperamos sus comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/guia-de-programacion-de-videojuegos/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Programación en Batch 4º Parte</title>
		<link>http://jestudio.cl/blog/programacion-en-batch-4-parte/</link>
		<comments>http://jestudio.cl/blog/programacion-en-batch-4-parte/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 01:14:32 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Batch]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Parte]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Util]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=139</guid>
		<description><![CDATA[Esta es la cuarta parte de otros tres tutoriales más. Ve aquí El primero, El Segundo y El tercero. En el tutorial pasado vimos como ejecutar acciones en gran cantidad de archivos a la vez y además creamos un código que creaba listas de reproducción para winamp. Como prometí, ahora les enseñare a hacer listas [...]]]></description>
			<content:encoded><![CDATA[<p><important>Esta es la cuarta parte de otros tres tutoriales más. Ve aquí <a title="Programacion con Batch 1º Parte" href="http://jestudio.cl/blog/programacion-en-batch-1%c2%ba-parte/">El primero</a>, <a title="Programacion con Batch 2º Parte" href="http://jestudio.cl/blog/programacion-en-batch-2-parte/">El Segundo</a> y <a title="Programacion con Batch 4º Parte" href="http://jestudio.cl/blog/programacion-en-batch-3%c2%ba-parte/">El tercero</a>.</important><br />
En el tutorial pasado vimos como ejecutar acciones en gran cantidad de archivos a la vez y además creamos un código que creaba listas de reproducción para winamp.<br />
Como prometí, ahora les enseñare a hacer listas pero para Windows Media Player, agrege un tema más para que entiendan mejor el código de la lista.</p>
<p><strong>Indice:</strong></p>
<ul>
<li> Acortar direcciones</li>
<li> Listas de reproducción para Windows media Player.</li>
</ul>
<h2>Acortar direcciones:</h2>
<p>Cuando usamos un <strong>for</strong> para recorrer los archivos nos devuelve la dirección entera del archivo. Esto es molesto, cuando lo que queremos es solo su nombre, o saber su ubicación.<br />
Ahora les voy a enseñar una técnica para acortar esas direcciones.<br />
En el caso por ejemplo de que la variable <strong>X</strong> tenga la dirección de un archivo y solo quisiéramos saber su extensión, usaríamos:</p>
<pre>%~xX</pre>
<p>y si quisiéramos saber en que unidad se encuentra:</p>
<pre>%~dX</pre>
<p>Para entender un poco mejor esto, miremos esto como una sintaxis.<br />
Siempre se usara <strong>%~</strong> seguido de una letra que representa lo que queremos obtener (el nombre, la extensión, etc) y por ultimo el nombre de la variable.<br />
Las letras que podemos usar son:</p>
<ul>
<li><strong>f </strong> Ruta y Nombre</li>
<li><strong>d </strong> Nombre Unidad donde se encuentra</li>
<li><strong>p </strong> Solo ruta</li>
<li><strong>n </strong> Solo nombre</li>
<li><strong>x </strong> Extensión</li>
<li><strong>s </strong> Ruta abreviada</li>
<li><strong>a </strong> Atributos</li>
<li><strong>t </strong> Fecha y hora de creación</li>
<li><strong>z </strong> Tamaño del archivo</li>
</ul>
<p>Por ejemplo, este programa nos mostrara algunos datos de los archivos que existan en la misma carpeta y directorios superiores.</p>
<pre>@echo off
FOR /R %%X in (*) DO (
echo Nombre: %%~nX
echo Extension: %%~xX
echo Tamaño: %%~zX
echo.
)</pre>
<p>Como vez, en el caso de los <strong>FOR</strong> debemos agregar un <strong>%</strong> extra adelante.</p>
<h2>Lista de Reproducción para <strong>Windows Media Player:</strong></h2>
<p>Más o menos siguiendo el esquema anterior, lo que hize fue ver como era aproximadamente como era un archivo de Lista de Reproducción. Después de un no muy intenso análisis podemos ver que es así.</p>
<pre>&lt;smil&gt;&lt;body&gt;&lt;seq&gt;
&lt;media src="RUTA NO FIJA DEL ARCHIVO.mp3" /&gt;
&lt;/seq&gt;&lt;/body&gt;&lt;/smil&gt;</pre>
<p>El problema que encontré en la sintaxis de los archivos es que al intentar hacer un <strong>echo</strong> a  los signos <strong>&lt;</strong> y<strong> &gt;</strong> el código dejaba de funcionar. Pues encontré la solución, simplemente agregando el signo ^ antes de cada <strong>&lt;</strong> o <strong>&gt;. </strong>Pues así quedó:</p>
<pre>@echo off
echo. &gt; Lista.wpl
echo ^&lt;smil^&gt;^&lt;body^&gt;^&lt;seq^&gt; &gt;&gt; Lista.wpl
FOR %%X in (*.mp3) DO (
echo ^&lt;media src="%%~nX%%~xX" /^&gt; &gt;&gt; Lista.wpl
)
echo ^&lt;/seq^&gt;^&lt;/body^&gt;^&lt;/smil^&gt; &gt;&gt; Lista.wpl
start Lista.wpl
exit</pre>
<p><strong>Explicación:</strong></p>
<p>(Si tienes dudas sobre esta explicación, es que no entendiste bien los 3 tutoriales anteriores)</p>
<ul>
<li><strong>@echo off</strong><br />
Eliminamos el Eco</li>
<li><strong>echo. &gt; Lista.wpl</strong><br />
Creamos un nuevo archivo Lista.wpl o borramos su contenido si existe</li>
<li><strong>echo ^&lt;smil^&gt;^&lt;body^&gt;^&lt;seq^&gt; &gt;&gt; Lista.wpl</strong><br />
Escribimos<strong> </strong><em>&lt;smil&gt;&lt;body&gt;&lt;seq&gt;</em><strong> </strong>en la primera linea del archivo Lista.wpl</li>
<li><strong>for %%X in (*.mp3) DO ()</strong><br />
Ejecutar la acción entre paréntesis para cada archivo encontrado con extensión .mp3</li>
<li><strong>echo ^&lt;media src=&#8221;%%~nX%%~xX&#8221; /^&gt; &gt;&gt; Lista.wpl</strong><br />
Escribir <em>&lt;media src=&#8221;NombreArchivo+Extencion&#8221;/&gt;</em> en la siguiente linea de Lista.wpl, esta accion se repite por cada mp3 encontrado.</li>
<li><strong>echo ^&lt;/seq^&gt;^&lt;/body^&gt;^&lt;/smil^&gt; &gt;&gt; Lista.wpl</strong><br />
Escribir <em>&lt;/seq&gt;&lt;/body&gt;&lt;/smil&gt;</em> alfinal del archivo.</li>
<li><strong>start Lista.wpl</strong><br />
Abrir la lista con el programa predeterminado</li>
<li><strong>exit</strong><br />
Cerrar ventana DOS</li>
</ul>
<p>Pues, eso es todo por hoy. Ojala les sea de gran utilidad. Hasta la próxima <img src='http://jestudio.cl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <em>(Si es que me da para más)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/programacion-en-batch-4-parte/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>No gastes discos en imágenes iso, con MagicDisc.</title>
		<link>http://jestudio.cl/blog/no-gastes-discos-en-imagenes-iso-con-magicdisc/</link>
		<comments>http://jestudio.cl/blog/no-gastes-discos-en-imagenes-iso-con-magicdisc/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 23:08:08 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Personalizate]]></category>
		<category><![CDATA[Programas]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Grabar]]></category>
		<category><![CDATA[Iso]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Recomendado]]></category>
		<category><![CDATA[Segunda Opcion]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=119</guid>
		<description><![CDATA[A mi me pasa a menudo que me descargo imágenes iso (u otro tipo parecido) y me tengo que dar la lata de copiarlas a un CD para llegar a su contenido, peor es esto si es que la imagen esta dañada o no tiene el contenido que queríamos. Por eso ahora tengo la solución [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-120" title="cd" src="http://jestudio.cl/blog/wp-content/uploads/2008/06/cd.jpg" alt="CD" width="200" height="200" /></p>
<p>A mi me pasa a menudo que me descargo imágenes <strong>iso</strong> (u otro tipo parecido) y me tengo que dar la lata de copiarlas a un CD para llegar a su contenido, peor es esto si es que la imagen esta dañada o no tiene el contenido que queríamos.<br />
Por eso ahora tengo la solución para todos.<a title="Magic Disc Download" href="http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm"> <strong>MagicDisc</strong> </a>es una aplicación que sirve para simular imágenes estilo iso y ver su contenido. Si nos bajamos un juego de PC por ejemplo, no sera necesario pasarlo a un CD, solamente lo &#8220;emulamos&#8221; y listo.<br />
Es realmente útil, lo recomiendo pueden bajarlo desde aquí: <a title="MagicDisc Download" href="http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm">http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/no-gastes-discos-en-imagenes-iso-con-magicdisc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programación en Batch 2º Parte.</title>
		<link>http://jestudio.cl/blog/programacion-en-batch-2-parte/</link>
		<comments>http://jestudio.cl/blog/programacion-en-batch-2-parte/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 02:32:10 +0000</pubDate>
		<dc:creator>JaLeRu</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Bat]]></category>
		<category><![CDATA[Batch]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://jestudio.cl/blog/?p=25</guid>
		<description><![CDATA[Esta es la segunda parte de mi tip Programación Batch con archivos .bat, así que te recomiendo leerlo si es que no estas instruido en el tema. A continuación veremos los siguientes temas: Uso de etiquetas Condicionales Creación de Menús Apagado y Reiniciado de Pc con archivos .bat Leer archivos externos Insertar al Registro Otras [...]]]></description>
			<content:encoded><![CDATA[<p>Esta es la segunda parte de mi tip <a href="http://jestudio.cl/blog/programacion-en-batch-1%c2%ba-parte/" target="_blank">Programación Batch con archivos .bat</a>, así que te recomiendo leerlo si es que no estas instruido en el tema.</p>
<p>A continuación veremos los siguientes temas:</p>
<ul>
<li>Uso de etiquetas</li>
<li>Condicionales</li>
<li>Creación de Menús</li>
<li>Apagado y Reiniciado de Pc con archivos <em>.bat</em></li>
<li>Leer archivos externos</li>
<li> Insertar al Registro</li>
<li> Otras cosas útiles</li>
</ul>
<p>Si te interesa, sigue leyendo.<br />
<span id="more-25"></span></p>
<h2>Uso de etiquetas</h2>
<p>Como  bien sabemos la lectura de los códigos Batch se leen de una manera  lineal, pero existe una forma para que el Batch se salte lineas, o  vuelva a alguna anterior. Esto se logra con <strong>Etiquetas </strong> y la función <strong>GOTO</strong>.</p>
<p>Para crear una etiqueta solo debemos escribir:</p>
<pre>:nombreEtiqueta</pre>
<p>Dos punto (<strong>:</strong>) seguido del nombre que le daremos a la etiqueta.  De esta manera el <strong>GOTO</strong> funciona escribiendo</p>
<p><strong>GOTO</strong> seguido del nombre de la etiqueta, como vemos en el siguiente ejemplo.</p>
<pre>@echo off
goto :mietiqueta
echo ¿Por que me saltan?
:MiEtiqueta
echo Hola, esta es la etiqueta y nos saltamos una parte del codigo.
pause&gt;nul
exit</pre>
<p><em>Dato Interesante:</em></p>
<p><em>En Batch las Mayúsculas y Minúsculas no se diferencian.</em></p>
<h2>Condicionales:</h2>
<p>El primer condicional que veremos el más usado.</p>
<p>IF:</p>
<p>Se puede ocupar para comparar, cadenas, números o para saber si existen archivos.</p>
<p>Ejemplo de sintaxis<strong>, if %cadena1% == %cadena2% OrdenAEjecutar</strong></p>
<p>Que se podría leer de la siguiente manera. Si cadena1 es igual a Cadena2 ejecutemos la Orden OrdenAEjecutar.</p>
<p>También existe el <strong>NOT</strong> para ver si no son iguales.</p>
<p><strong>if not %cadena1%== %cadena2% ejecutarAccion</strong></p>
<p>Para saber si un archivo existe, se usa:</p>
<p><strong>if exist &#8220;NombreDelArchivo&#8221; AccionAEjecutar</strong></p>
<p>o también para ver si NO existe:</p>
<p><strong>if not exist &#8220;NombreDelArchivo&#8221; AccionAEjecutar</strong></p>
<p>No solo se puede ocupar el signo <strong>==</strong> para hacer comparaciones.</p>
<p><strong>EQU</strong>, que es el equivalente a <strong>==</strong></p>
<p><strong>NEQ</strong>, Sirve para cuando queremos ver Desigualdad.</p>
<p><strong>LSS</strong>, Para verificar si el numero es Menor</p>
<p><strong>LEQ</strong>, Para verificar si es menor o igual.</p>
<p><strong>GTR</strong>, Si es mayor</p>
<p><strong>GEQ</strong>, Si es Mayor e igual.</p>
<p>Un ejemplo de esto seria:</p>
<pre>if 5 GTR 4 echo Hola</pre>
<p>FOR:</p>
<p>Nos sirve para repetir un comando varias veces, en distintas variables.</p>
<p>Un ejemplo, es este:</p>
<p><strong>for /L %%i IN (0,1,21) DO (echo %%i)</strong></p>
<p>En donde <strong>/L</strong> es para especificar que nuestro for se basara en un conteo de números.</p>
<p>Aquí se repetirá un Echo, que imprimirá números del 0 al 21.</p>
<p><strong>%%i </strong>sera el nombre de la variable que almacenara datos</p>
<p><strong>in (0,1,21) </strong>aquí especificamos que se repetirá del 0 al 1 y del 1 al 21.</p>
<p><strong>do (echo %%i)</strong> Esto es la función que se ejecutara en cada repetición del comando, en este caso un echo que imprimirá la variable.</p>
<div>Batch en algunos casos <strong>SI</strong> reconoce entre mayúsculas y minúsculas, como en el caso de la variable  %%i si esta se llamara %%I no seria reconocida como la misma.</div>
<p>Otro uso que puede ser aplicado en el FOR es el listado de carpetas o archivos, como veremos a continuación:</p>
<p>Listado de archivos:</p>
<pre>@echo off
FOR %%x in (a*) DO echo %%x
pause</pre>
<p>Este código, listaría todos los archivos que comienzan con A.</p>
<p>¿Por  que? * (asterisco) es un signo comodín, por lo cual al poner a*,  estamos diciendo cualquier archivo que tenga una A delante y luego  cualquier cosa.</p>
<p>Otro ejemplo del uso de comodín, es listar archivos con extensión común como seria este:</p>
<pre>@echo off
FOR %%x in (*.jpg) DO echo %%x
pause</pre>
<p>Aqui nos estaria listando todos los archivos que tengan la extensión <strong>.jpg</strong></p>
<p>Listado de Carpetas:</p>
<p>FOR /D %%x in (a*) DO echo %%x</p>
<p>Es casi lo mismo anterior, tan solo que al indicar <strong>/D</strong> solo se aplica a directorios.</p>
<p>Si quisiéramos que se listaran los directorios, juntos a los directorios que tienen estos dentro se ocupa<strong> /R</strong></p>
<p><strong>FOR /R /D %%x in (a*) DO echo %%x</strong></p>
<p>y  si quisiéramos listar todos los documentos que están dentro de una  carpeta contando los que están dentro de carpetas se ocupa solamente <strong>/R</strong> (Sin /D)</p>
<p><strong>FOR /R %%x in (a*) DO echo %%x</strong></p>
<p>Con  esto creo que tenemos lo básico, y más importante de los condicionales.</p>
<h2>Creación de Menús:</h2>
<p>Como ya vimos Condicionales y Etiquetas les enseñare una manera de hacer Menús.</p>
<p>Comenzaríamos indicando las instrucciones y las opciones, de esta manera:</p>
<pre>@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir</pre>
<p>Luego para seguir ocuparíamos esto:</p>
<pre>set /p var=
if %var%==1 goto <img src='http://jestudio.cl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> rimero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu</pre>
<p>Con  esto damos una variable en la que se guardara el numero insertado para  luego ser verificado por los condicionales, si el numero es mayor que 3  nos avisara que no existe esa opción. También al principio cree una  etiqueta para que se pueda volver</p>
<p>al menú y un &#8220;<strong>cls</strong>&#8221; para limpiar la pantalla.</p>
<p>Para terminar creamos las respectivas etiquetas.</p>
<pre> <img src='http://jestudio.cl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> rimero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause&gt;Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause&gt;Nul
goto :Menu</pre>
<p>Quedando para terminar nuestro codigo así:</p>
<pre>@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir
set /p var=
if %var%==1 goto <img src='http://jestudio.cl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> rimero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu
 <img src='http://jestudio.cl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> rimero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause&gt;Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause&gt;Nul
goto :Menu</pre>
<p>Bueno, con eso les basta para imaginarse como crear sus menús personales.</p>
<p>Como vieron puede cada sección tener su color, incluso puedes cambiar la barra de titulo.</p>
<p>Ve probando, no pierdes nada.</p>
<h2>Apagado y Reiniciado de Pc:</h2>
<p>Una  cosa muy interesante que puedes hacer con Batch es Apagar y Reiniciar  tu Pc, incluso programarlo para que apague a la hora que desees.</p>
<p>Es notablemente fácil.</p>
<p>se ocupa de la siguiente manera el apagado.</p>
<p><strong>shutdown -s -t Tiempo -c &#8220;Comentario&#8221;</strong></p>
<p>donde <strong>-s</strong> significa que lo apagaremos,<strong> -t</strong> debe ir seguido de los segundos que demorara apagar. En windos XP mostrara un contador, con el comentario que va luego de<strong> -c</strong>, pero en Windows Vista no abra ni un contador, solamente saldrá una alerta con el Comentario, que ni siquiera es obligatorio.</p>
<p>Bueno, de seguro quieres hacer la prueba. La puedes hacer pero antes de eso te recomiendo que leas lo siguiente.</p>
<p>Puedes cancelar el apagado (Antes de que el contador termine) solamente escribiendo <strong>shutdown -a</strong> ya sea en un archivo de texto con extensión bat, como en el mismo Shell.</p>
<p>Entonces, pues has la prueba</p>
<p><strong><br />
</strong></p>
<pre>shutdown -s -t 999999 -c "Esto se esta apagando"</pre>
<p>Tendrás suficiente tiempo para ejecutar el siguiente código. (11 días <img src="http://www.cristalab.com/foros/images/smiles/icon_lol.gif" border="0" alt="Riendo" /> )</p>
<pre>shutdown -a</pre>
<p>Con esto ya probamos los dos y podemos ser felices.</p>
<p>Ok, si en vez de ocupar<strong> -s </strong>usas<strong> -r</strong> el PC se reiniciara.</p>
<p>También puedes forzar el cierre de los programas, para que no de tiempo de guardar nada. Tan solo ocupando <strong>-f</strong></p>
<p>Un ejemplo de un Pc, que se Apaga Forzosamente y que puede dañar el pc y luego se reinicia es este:</p>
<pre>shutdown -r -f -t 0 -c "Bye"</pre>
<p>(No lo recomiendo probar en tu pc, Ya que apaga el pc en 0 segundos sin preguntar nada. )</p>
<p>Para programar un apagado lo veremos al final en los Datos Extras, ya que con la función AT puedes programar el apagado.</p>
<h2>Leer archivos externos:</h2>
<p>Para leer un archivo externo con Batch, como un archivo de texto por ejemplo. Se usa el siguiente código:</p>
<pre>type "NombreDelArchivo.txt"</pre>
<p>¿Simple no?</p>
<h2>Insertar al Registro:</h2>
<p>Insertar  al registro tu Batch puede ser muy útil, la verdad yo no entiendo mucho  del registro pero leí un poco y aquí tienen un ejemplo que se encuentra  a ser sincero en muchas web. Donde aremos que nuestro batch se ejecute  con el Sistema.</p>
<pre>REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v MIBATCH.bat /t REG_SZ /d

C:\MIBATCH.bat</pre>
<p>Con la función <strong>REG ADD</strong> Agregamos algo al registro. Con otros comando podemos borrar.</p>
<p>Lo  que sigue es la &#8220;Dirección&#8221; de donde insertaremos el registro que en  este caso sera para que nuestro batch se ejecute al iniciar Sesión.</p>
<p>En medio de toda la dirección se puede leer<strong> MIBATCH.bat</strong> yo puse el nombre del Batch pero también se puede poner cualquier otra  cosa. Más adelante donde dice C:\MIBATCH.bat, es la dirección completa  de donde esta nuestro Batch.</p>
<p>Con solo esta linea estamos listos. Haz la prueba!</p>
<h2>Otras cosas útiles:</h2>
<p>Para terminar hablare de pequeñas funciones que pueden ser de utilidad.</p>
<p><strong>Msg</strong></p>
<p>Esta función tiene otras utilidades, pero les enseñare esta que no funciona en todos los PC.</p>
<p>Sirve para abrir una alerta con un mensaje su utilización es la siguiente:</p>
<pre>msg * EsteEsMiMensaje</pre>
<p><strong>AT</strong></p>
<p>Esta es una de las que más me gusta, es para programar alguna acción a cierta hora.</p>
<p>Ejemplo:</p>
<pre>At 20:00 msg * Son Las 8 de la noche</pre>
<p>Con esto a las 20:00 nos aparecerá un mensaje que nos dirá que son las 8 de la Noche.</p>
<p>También puedes programar un apagado o cualquier Cosa.</p>
<p>Si la hora que das ya paso, se tomara como para el día siguiente.</p>
<p>Creo  que he terminado, me costó un poco. Ojala no me haya faltado nada.  Disfrútenlo y seria bueno que los Clabers aporten con más información.  Yo creo que seria útil para todos, incluyéndome.</p>
<p>Suerte.</p>
]]></content:encoded>
			<wfw:commentRss>http://jestudio.cl/blog/programacion-en-batch-2-parte/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
	</channel>
</rss>

