SoloCodigo

Programación Específica => Programación de Archivos del Sistema => Mensaje iniciado por: © Jonathan © en Martes 2 de Agosto de 2005, 13:26

Título: Autoexec.bat
Publicado por: © Jonathan © en Martes 2 de Agosto de 2005, 13:26
Hola, me parece muy util un foro sobre este tema. norabuena  :comp: .. queria consultarles sobre una duda que tengo al momento de reformar el autoexec.bat, en el documento dice que debo colocar :

path c:\djgpp ... ... ...

pero he visto otras lineas en mi autoexec con algo similar pero ponen un sigo igual "=" despues de la palabra path, algo asi,
path=c:\ .. eso difiere en algo? da igual si pongo o no el signo?.. si alguien tiene algun doc que explique de que manera se pueden escribir los bat se lo encargo, es algo interesante. Saludos y las Gracias por anticipado :)
Título: Re: Autoexec.bat
Publicado por: Hao en Martes 2 de Agosto de 2005, 17:16
Hola © Jonathan ©..!

 Cada vez que se inicia el sistema, el dos busca en la raíz del disco de arranque el archivo AUTOEXEC.BAT si este archivo existe el dos ejecuta los comandos contenidos en el. Si el dos no localiza el archivo AUTOEXEC.BAT este procede a ejecutar el comando DATE seguido del comando TIME.
    Los archivos .bat se ejecutan lentamente por que el Dos tiene que interpretar cada orden antes de ejecutarla. Así que no están hechos para usarlos como lenguaje de programación.

PATH
 El Path no es mas que una lista de subdirectorios que usa el Dos para buscar cuando un programa no se encuentra en el subdirectorio actual, la sintaxis del path es:
PATH= C\ ; Sub1; Sub2; ... Subn;
(Usa el = para decir "la ruta o direccion es = a ")  

SUBST
Uno de los problemas del comando Path es que solo puede contener 127 caracteres en una lista al igual que otros comandos del Dos. Pero Path por si solo tiene 5 caracteres lo que nos queda solo 122 caracteres para la ruta. Una solución para este problema es el comando Subst, el cual constituye una ruta de subdirectorios por una letra del drive como:
SUBST D: C:\ DOS
SUBST E: C:\ WP
Entonces tu puedes usar D: siempre que quieras ir al subdirectorio C:\ Dos.
 

En general algunas de las tareas mas importantes del Autoexec.bat son:
Efectúa algunas tareas de configuración final que no se efectúan en el Config.sys.
Define un Path o ruta de caminos
Crea cualquier otra variable de medio ambiente requerida por el sistema, algunas variables comspec son creadas automáticamente, otras es necesario especificarlas (Comando SET).
Define el prompt inicial del sistema.
Carga cualquier tipo de programa residente en memoria.
A continuación un pequeño ejemplo de lo que podría ser un archivo AUTOEXEC.BAT
 
Código: Text
  1.  
  2. @ ECHO OFF
  3. REM NAME       : AUTOEXEC.BAT
  4. REM VERSION : 4.01
  5. REM DATE        : Agosto 2, 2005
  6. REM Ponerle un nuevo formato al prompt del sistema
  7. PROMPT = $P\ $d$g
  8. REM El path del sistema...
  9. PATH = C:\&#59; C:\ DOS; C:\ BORLANDC; C:\ KILLER
  10. REM Sustituyendo una ruta por un drive lógico
  11. SUBST D : C :\ Utilerias\ Wp
  12. REM Borrar archivos .TMP que aparezcan en C:\ WORD
  13. IF EXIST C:\ WORD\ *.TMP DEL C:\ WORD\ *.TMP
  14. ^ Z
  15.  
  16.  



HAO :lightsabre:
Título: Re: Autoexec.bat
Publicado por: Hao en Martes 2 de Agosto de 2005, 17:50
Un poco mas (lo pongo en otro post para no hacerlo tan extenso...)

CONTINUA....
   Cuando deseas ejecutar un programa, sobre todo en línea de comandos, pero tambien en otros casos, si no lo ejecutas desde el mismo directorio donde está el ejecutable, es posible que el sistema operativo no sepa donde encontrarlo, a él o a alguno de los componentes que necesite para funcionar, dando un mensaje de error.
   Por ejemplo si tenemos un servidor mysqld y queremos arrancarlo desde la linea de comandos, deberiamos o bien movernos hasta c:\mysql\bin (o donde quiera que este el ejecutable) o bien desde el directorio que nos encontremos escribir el path integro, por ejemplo:
C:\WINDOWS>C:\mysql\bin\mysqld.exe
En cambio, si tuvieramos c:\mysql\bin en nuestro PATH, podriamos ejecutar cualquier programa situado dentro de bin desde cualquier directorio, sin movernos hasta allí ni escribir el path completo.

   Por tanto mediante el comando PATH indicamos a DOS las rutas de búsqueda de programas ejecutables. De hecho, al instalarlos, muchos programas añaden automáticamente entradas en autoexec.bat indicando su propio path, lo que a su vez puede ser fuente de problemas, ya que un PATH indebidamente configurado puede dejar sin efecto el anterior, y porque el comando PATH tiene una importante limitación en cuanto a numero máximo de valores que puede almacenar.

    Para comprobar cual es el valor actual de PATH simplemente abre una sesion de DOS, teclea PATH y pulsa enter, y veras las rutas que tiene almacenadas. Normalmente un PATH tendrá como mínimo la ruta C:\windows y c:\windows\command, lo que quiere decir que los programas que esten en esos directorios podrán ser ejecutados en linea de comandos desde cualquier otra carpeta del sistema, sin necesidad de movernos hasta la carpeta del ejecutable.

    DOS buscará el archivo a ejecutar siempre en primer lugar en el directorio actual, y solo si allí no lo encuentra, sucesivamente en cada una de las rutas especificadas en PATH, de izquierda a derecha. Este dato es importante si vas a ejecutar un archivo del cual tienes varias copias con el mismo nombre.
Un ejemplo típico es php.ini, necesario para ejecutar PHP que puede estar duplicado en c:\windows y en c:\php. Si tu instalación PHP no funciona como esperas, esta es una de las primeras cosas a comprobar: que se esté cargando el php.ini correspondiente y no otro.
NOTA: Cada vez que se establece un nuevo PATH el anterior queda sin efecto, salvo que usemos la opcion %PATH%;nuevopath
NOTA 2: No podemos añadir al path nombres de directorios con espacios en blanco, como Archivos de programa. Para incorporarlos debemos entrar el valor entrecomillado o usar el nombre corto DOS: Archiv~1 etc
NOTA 3: Las distintas rutas se separan por ; y nunca por espacios en blanco

Los limites del PATH
Típicamente y por razones históricas (realmente tales limites no tienen sentido en las últimas versiones de DOS) un comando PATH dentro de autoexec.bat no puede exceder de 127 caracteres, de los cuales son usables unos pocos menos, ya que hay que descontar los empleados por la propia palabra PATH, por los caracteres separadores, retornos de carro, etc.

Para sortear este límite hay varios caminos. El mas sencillo es recordar que windows 98/98 ya carga siempre por defecto el PATH C:\WINDOWS;C:\WINDOWS\COMMAND (que viene fijado por el archivo binario IO.sys). Por eso, en autoexec puedes simplemente poner la línea PATH = %PATH%;rutas_adicionales

Lo que NO debe hacerse es poner varias lineas PATH en autoexec.bat, ya que la ultima elimina las anteriores. Recuerda que si tienes varias lineas PATH, para que la ultima conserve las anteriores debe ser PATH=%PATH%;nueva_linea_path

Otra solución es establecer el valor de PATH en el archivo config.sys que no tiene el límite de los 127 carácteres, con las siguientes precauciones:

En este archivo debe usarse la sintaxis SET PATH, no solamente PATH
El PATH de config.sys puede ser sobreescrito si tenemos otro en autoexec.bat. Si instalas algun programa, este posiblemente buscará establecer su propio path en autoexec.bat, pero no en config.sys, por lo que posiblemente tendrás que editarlo a menudo, o te encontrarás que, como el PATH de autoexec se superpone al PATH de config.sys, el valor de tu PATH contendrá unicamente el directorio del ultimo programa instalado.
A diferencia del establecido en autoexec, el PATH de config.sys no puede ser variado durante una sesión.
El comando SET
Con SET podemos fijar variables de entorno, para esa sola sesión (si simplemente lo tecleamos en una ventana de DOS) o con carácter permanente, si lo incluimos en autoexec.bat.
Si lo que deseas es ver todas tus variables de entorno, usa el comando SET sin argumentos.

CLASSPATH
Este comando es en todo similar a PATH, si bien las rutas que contiene son aquellas donde el intérprete Java debe buscar las clases Java necesarias para ejecutar cada programa.
Una entrada típica en autoexec.bat sería:
SET CLASSPATH=.;c:\Java\classes_blablabla
Cuando nos encontramos un punto (.) en un path lo que queremos indicar es el directorio actual desde donde ejecutamos la orden.

Espero que te sea util...

Atte..


HAO :smartass:
Título: Re: Autoexec.bat
Publicado por: © Jonathan © en Miércoles 3 de Agosto de 2005, 13:11
Bueno, la verdad no esperaba una respuesta tan elaborada :think:, ahora quedo todo mas claro y puedo decir que han desaparecido varias dudas que tenia, este documento podria valerse como una introduccion, esta bien detallado y explicado.

Una maravilla, Gracias por tomarte un tiempo y responderme :) :gracias: . Saludos! :suerte:
Título: Re: Autoexec.bat
Publicado por: JuanK en Miércoles 3 de Agosto de 2005, 14:27
Hola jonathan, como veo que lo necesitas para el DJGPP, si tienes windows 2K o XP mi recomendacion es que no uses el autoexec para definir la variable de entorno sino que uses
icono de windows + Pause

esto te lleva a la ventana propiedades del sistema, alli ve a :
opciones avanzadas> variables de entorno>

y alli creas o modificas las variables que necesites, entre ellas el path.

Tengo una duda, lo que menciona Hao respecto a los 127 caracteres es en versiones anteriores de windows?

He tenido 2K y XP y en ambas versiones he tenido paths mucho mas grandes que este de 262 caracteres:
Código: Text
  1.  
  2. path= C:\Archivos de programa\GNU\WinCvs 1.3\CVSNT;%JAVA_HOME%\bin;C:\oracle\ora92\bin;C:\Archivos de programa\Oracle\jre\1.3.1\bin;C:\Archivos de programa\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Archivos de programa\cvsnt
  3.  

Y funciona al 100% cualquier path que incluyas.