FICHEROS X LOTES II
AUTOEXEC.BAT  Como cualquier fichero por lotes, el AUTOEXEC.BAT posee las mismas características que los demás: lleva exte...
En los ejercicios hemos visto que las variables de entorno como el prompt se guardan en la memoria y se pierden al apagar ...
<ul><li>Por tanto, el fichero AUTOEXEC.BAT debe contener estos tres módulos indispensables:  </li></ul><ul><li>Órdenes par...
@ECHO OFF SET PROMPT=$P$G SET PATH=C:DOS;C:BATH;C:WINDOWS SET TEMP=C:DOSTEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=(...
El  primer grupo de órdenes  contiene la definición de variables del entorno. Recordamos que las variables PATH y PROMPT s...
Orden  Significado   SET PROMPT   Define el símbolo del sistema.  SET PATH   Define la vía de acceso.  SET TEMP   Define e...
El  segundo grupo de órdenes  entre otras cosas definen el español como idioma.  MODE CON CODEPAGE PREPARE=((850) C:DOSEGA...
El  tercer grupo de órdenes  cargan en memoria programas residentes. Aunque suele ser suficiente poner el nombre de la ord...
Orden  Significado   SMARTDRV   Carga un programa de caché de disco MOUSE   Carga el controlador del ratón SHARE   Control...
Ejemplo RELOJ.BAT  Para que funcione este ejemplo vamos a crear con EDIT un fichero que tenga dos retornos de carro (dos i...
Ejemplo RELOJ.BAT  @echo off rem Programa: RELOJ.BAT rem Cometido: Mostrar la fecha y la hora actual en pantalla if not ex...
Ejecución:   C:BATH> reloj La fecha actual es Mar 15/08/1995 La hora actual es 14:15:09,58 C:BATH>  Si el fichero existe, ...
Ejemplo PROGRAMA.BAT  @echo off rem Programa: PROGRAMA.BAT rem Cometido: Visualizar ordenados y con pausa en cada rem pant...
C:WP60>programa CV.EXE INSTALL.BAT MCV.EXE QFIGENES.EXE VAPINUL.COM VMP.COM WPINFO.EXE WP.COM WP.EXE C:WP60>  Ejecución:
Este fichero por lotes necesita crear un fichero temporal para ir añadiéndole todos los ficheros con extensiones COM, EXE ...
Ejemplo : BORRAR.BAT  Este fichero por lotes, desplaza un fichero o grupo de ficheros a un directorio llamado C:BASURA.  D...
@echo off rem Programa: BORRAR.BAT rem Cometido: Mueve el fichero o grupo de ficheros especificados a un  rem directorio l...
C:PRUEBA> borrar *.ini A continuación se recuerda el estado del directorio C:BASURA 5 archivo(s) 27.238 bytes C:PRUEBA>  E...
La primera orden If detecta si no se ha introducido ningún parámetro, produciendo un aviso en este caso. La segunda orden ...
La siguiente línea If comprueba el código de salida. Si se ha producido un error en la copia de los ficheros, los ficheros...
EJERCICIO (cuaderno de prácticas) <ul><li>Modifica el programa anterior para que introduciendo el parámetro “borrar” el pr...
Ejemplo : COPIADIR.BAT  @echo off echo Este programa copia todos los ficheros echo del directorio actual a la unidad A: ec...
EJERCICIO  (cuaderno de practicas) <ul><li>Modifica el programa anterior para que solo copie el contenido en un disquete, ...
La primera línea If detecta si el directorio actual está vacío produciendo un error. La orden Attrib enciende el bit de ar...
Upcoming SlideShare
Loading in …5
×

Tema 10. Ficheros Por Lotes Ii

5,389
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
128
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tema 10. Ficheros Por Lotes Ii

  1. 1. FICHEROS X LOTES II
  2. 2. AUTOEXEC.BAT Como cualquier fichero por lotes, el AUTOEXEC.BAT posee las mismas características que los demás: lleva extensión BAT, contiene órdenes, se puede ejecutar introduciendo su nombre después del símbolo del sistema y se interrumpe su funcionamiento si pulsamos Ctrl+Pausa. Además se añaden tres características exclusivas: <ul><li>Tiene un nombre y extensión obligatorias: siempre debe llamarse AUTOEXEC.BAT </li></ul><ul><li>Se ejecuta cada vez que arranca el ordenador. Si no existe, ms-dos hace funcionar a tres órdenes en su lugar: Date, Time y Ver. </li></ul><ul><li>Debe residir en el directorio raíz de la unidad de arranque . Por ejemplo, si arrancamos con el disco duro _es lo más normal_ se buscará el fichero AUTOEXEC.BAT en su directorio raíz y luego, se ejecutará. </li></ul>
  3. 3. En los ejercicios hemos visto que las variables de entorno como el prompt se guardan en la memoria y se pierden al apagar el ordenador. La única forma de tener unas variables del entorno fijas (PATH, PROMPT, TEMP...) es definiéndolas en cada arranque del ordenador. El fichero AUTOEXEC.BAT contiene además órdenes para configurar el idioma del usuario. Por último, suele contener unas órdenes cuya misión es cargar programas residentes en memoria. Estos programas quedarán almacenados en memoria hasta el apagado del ordenador. Se suelen introducir como programas residentes un anti-virus, el programa Doskey y cualquier otro.
  4. 4. <ul><li>Por tanto, el fichero AUTOEXEC.BAT debe contener estos tres módulos indispensables: </li></ul><ul><li>Órdenes para configurar las variables del entorno (Set, Path y Prompt). </li></ul><ul><li>Órdenes para seleccionar el idioma. </li></ul><ul><li>Órdenes para instalar programas residentes. </li></ul>
  5. 5. @ECHO OFF SET PROMPT=$P$G SET PATH=C:DOS;C:BATH;C:WINDOWS SET TEMP=C:DOSTEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=((850) C:DOSEGA.CPI) MODE CON CODEPAGE SELECT=850 C:DOSKEYB SP,,C:DOSKEYBOARD.SYS C:DOSSMARTDRV.EXE C:DOSDRIVERSMOUSE.COM C:DOSSHARE.EXE /L:500 /F:5100 C:DOSDOSKEY /INSERT C:DOSVSAFE Ejemplo de un fichero AUTOEXEC.BAT
  6. 6. El primer grupo de órdenes contiene la definición de variables del entorno. Recordamos que las variables PATH y PROMPT se pueden definir con la orden Set o con unas órdenes diseñadas al efecto llamadas igualmente Path y Prompt. SET PROMPT=$P$G SET PATH=C:DOS;C:BATH;C:WINDOWS SET TEMP=C:DOSTEMP SET DIRCMD=/O:GEN
  7. 7. Orden Significado SET PROMPT Define el símbolo del sistema. SET PATH Define la vía de acceso. SET TEMP Define el directorio para ficheros temporales. SET DIRCMD Define cómo queremos ver el directorio (ordenación, formato...).
  8. 8. El segundo grupo de órdenes entre otras cosas definen el español como idioma. MODE CON CODEPAGE PREPARE=((850) C:DOSEGA.CPI) MODE CON CODEPAGE SELECT=850 C:DOSKEYB SP,,C:DOSKEYBOARD.SYS
  9. 9. El tercer grupo de órdenes cargan en memoria programas residentes. Aunque suele ser suficiente poner el nombre de la orden a secas, es habitual añadir la trayectoria del fichero delante de su nombre y la extensión detrás: de esta forma no hay confusión posible. A continuación se colocan los parámetros. C:DOSSMARTDRV.EXE C:DOSDRIVERSMOUSE.COM C:DOSSHARE.EXE /L:500 /F:5100 C:DOSDOSKEY /INSERT C:DOSVSAFE
  10. 10. Orden Significado SMARTDRV Carga un programa de caché de disco MOUSE Carga el controlador del ratón SHARE Controla la compartición de ficheros. Es requerido por algunas aplicaciones. DOSKEY Instala el editor de órdenes y macros VSAFE Carga el anti-virus residente de ms-dos
  11. 11. Ejemplo RELOJ.BAT Para que funcione este ejemplo vamos a crear con EDIT un fichero que tenga dos retornos de carro (dos intro o enter) que se llame reloj.txt
  12. 12. Ejemplo RELOJ.BAT @echo off rem Programa: RELOJ.BAT rem Cometido: Mostrar la fecha y la hora actual en pantalla if not exist c:ath eloj.txt goto Error date <c:ath eloj.txt |find &quot;actual&quot; time <c:ath eloj.txt |find &quot;actual&quot; goto Final: :Error echo ¡Falta el fichero RELOJ.TXT! :Final echo. Programa:
  13. 13. Ejecución: C:BATH> reloj La fecha actual es Mar 15/08/1995 La hora actual es 14:15:09,58 C:BATH> Si el fichero existe, se ejecutan las órdenes Date y Time. El operador `<' hace que la entrada de la orden sea el fichero RELOJ.TXT y como tiene un INTRO no nos pedirá nada por teclado y el filtro Find hace aparecer la línea que contiene la palabra actual .
  14. 14. Ejemplo PROGRAMA.BAT @echo off rem Programa: PROGRAMA.BAT rem Cometido: Visualizar ordenados y con pausa en cada rem pantalla todos los ficheros ejecutables del rem directorio actual. set fichtemp=%temp% emporal.txt if exist *.com dir *.com /b >%fichtemp% if exist *.exe dir *.exe /b >>%fichtemp% if exist *.bat dir *.bat /b >>%fichtemp% type %fichtemp% |sort |more del %fichtemp% set fichtemp= echo.
  15. 15. C:WP60>programa CV.EXE INSTALL.BAT MCV.EXE QFIGENES.EXE VAPINUL.COM VMP.COM WPINFO.EXE WP.COM WP.EXE C:WP60> Ejecución:
  16. 16. Este fichero por lotes necesita crear un fichero temporal para ir añadiéndole todos los ficheros con extensiones COM, EXE o BAT. Este fichero temporal debe ser creado en el directorio destinado a este fin (variable TEMP). Por tanto se crea otra variable llamada FICHTEMP que contiene el nombre del fichero (TEMPORAL.TXT) y su trayectoria. Si no se utilizase el directorio definido en la variable TEMP para crear el fichero TEMPORAL, podría darse el caso de intentar escribir en un disquete protegido contra escritura y no poder completarse la función del programa. La primera línea If crea el fichero temporal con el nombre de los ficheros con extensión COM. La segunda línea If añade al fichero temporal, aquellos ficheros con extensión EXE y la tercera línea If hace lo mismo con los ficheros BAT. La orden Type muestra todos los programas (ahora grabados en el fichero TEMPORAL.TXT) ordenados y por pantallas. Finalmente, la orden Del borra el fichero temporal creado y la orden Set elimina la variable del entorno creada.
  17. 17. Ejemplo : BORRAR.BAT Este fichero por lotes, desplaza un fichero o grupo de ficheros a un directorio llamado C:BASURA. De esta forma, si luego necesitamos recuperar un fichero borrado, sólo hará falta buscarlo en el directorio C:BASURA. Sin embargo, esto tiene un problema : el directorio C:BASURA crecerá y crecerá de tamaño llenando nuestro disco duro de ficheros inservibles. Por tanto, es necesario eliminar periódicamente el contenido de este directorio. Escribe en tu cuaderno de prácticas que hace la orden Undelete .
  18. 18. @echo off rem Programa: BORRAR.BAT rem Cometido: Mueve el fichero o grupo de ficheros especificados a un rem directorio llamado C:BASURA. Si no existe, lo crea. if &quot;%1&quot;==&quot;&quot; goto Error if not exist %1 goto Error xcopy %1 c:asura >nul if errorlevel 1 goto Error del %1 echo A continuación se recuerda el estado del directorio C:BASURA DIR C:BASURA |FIND &quot;archivo(s)&quot; goto Final :Error echo ¡No se pudo borrar %1! :Final echo.
  19. 19. C:PRUEBA> borrar *.ini A continuación se recuerda el estado del directorio C:BASURA 5 archivo(s) 27.238 bytes C:PRUEBA> Ejecución:
  20. 20. La primera orden If detecta si no se ha introducido ningún parámetro, produciendo un aviso en este caso. La segunda orden If comprueba que el fichero para borrar exista, si no es así dará un mensaje de error. La orden Xcopy mueve el fichero o ficheros especificados como parámetros al directorio C:BASURA. La barra inclinada invertida detrás de BASURA se emplea para informar a Xcopy que BASURA es un directorio y no un fichero. Si el directorio no existe, Xcopy sabrá que es un directorio y lo creará automáticamente. La salida de la orden se ha redireccionado al dispositivo ficticio NUL. De esta forma, no aparecerá ningún mensaje producido por la orden en la pantalla.
  21. 21. La siguiente línea If comprueba el código de salida. Si se ha producido un error en la copia de los ficheros, los ficheros no se borrarán. Esto es una medida de seguridad para evitar la desaparición definitiva de los ficheros. La orden Del borra los ficheros del directorio actual. Ya hemos mencionado el problema de este fichero por lotes. Como solución, se informa al usuario del número de ficheros y los bytes ocupados por todos ellos en el directorio C:BASURA. De esta forma el usuario sabrá si debe borrar con la orden Del los ficheros del directorio BASURA.
  22. 22. EJERCICIO (cuaderno de prácticas) <ul><li>Modifica el programa anterior para que introduciendo el parámetro “borrar” el programa borre el contenido del directorio c:asura </li></ul>
  23. 23. Ejemplo : COPIADIR.BAT @echo off echo Este programa copia todos los ficheros echo del directorio actual a la unidad A: echo (si no cabe en un sólo disquete echo, se pedirán más) if not exist *.* goto Error attrib +a *.* :Proceso echo. echo ** Inserte un nuevo disquete en A: Pulse Enter para proseguir pause >nul xcopy *.* a: /m if errorlevel 5 goto Error if errorlevel 4 goto Proceso if errorlevel 1 goto Error if errorlevel 0 goto FinCopia echo. echo ¡No se pudo realizar la copia! goto final :FinCopia echo. echo ¡El proceso de copia se echo completó con éxito! :Final echo.
  24. 24. EJERCICIO (cuaderno de practicas) <ul><li>Modifica el programa anterior para que solo copie el contenido en un disquete, en el caso de que tenga que copiar mas de uno mostrará el mensaje “DISCO LLENO” </li></ul>
  25. 25. La primera línea If detecta si el directorio actual está vacío produciendo un error. La orden Attrib enciende el bit de archivar a todos los ficheros del directorio actual. Seguidamente, COPIADIR.BAT pide un primer disquete en la unidad A:, luego comienza la copia de todos los ficheros a la unidad A:. El parámetro /m desactiva el bit de archivar a los ficheros copiados. Las siguientes líneas If comprueban el resultado de la orden. Las posibilidades son las siguientes: a) No hay suficiente espacio en el disco para copiar todos los ficheros. En este caso, se pide otro disquete y se reanuda la copia donde se quedó; b ) Se presionó Ctrl+Pausa u ocurrió un error de escritura en el disco. Se produce un mensaje y finaliza; c) La copia fue correcta. Esto significa que todos los ficheros han podido copiarse en uno o más disquetes y por tanto, se ha cumplido el objetivo del programa.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×