Académique Documents
Professionnel Documents
Culture Documents
TCNICAS AVANZADAS
Pgina n 1
Pgina n 3
SHIFT El comando SHIFT cambia los valores de los parmetros reemplazables %0 a %9 copiando cada parmetro en el anterior. En otras palabras, el valor de %1 es copiado en %0, el valor de %2 es copiado en %1 y as sucesivamente. Esto es til para escribir un programa de procesamiento por lotes que realiza la misma operacin en cualquier nmero de parmetros. El siguiente programa de procesamiento por lotes, MICOPIA.BAT, muestra cmo se utiliza el comando SHIFT con cualquier nmero de parmetros. Copia una lista de archivos a un directorio especfico. Los parmetros constan del nombre del directorio seguido de cualquier nmero de nombres de archivos. @echo off rem MICOPIA.BAT copia cualquier nmero de archivos rem a un directorio. rem El comando utiliza la siguiente sintaxis: rem micopia dir archivo1 archivo2 ... set adir=%1 :obtener_archivo shift if "%1"=="" goto final copy %1 %adir% goto obtener_archivo :final set adir= echo Terminado
GOTO (IR A) Dirige a MS-DOS hacia una lnea marcada por una etiqueta especificada por usted dentro de un programa de procesamiento por lotes. Podr utilizar este comando slo en programas de procesamiento por lotes. El comando GOTO indica a MS-DOS que vaya a una lnea especfica, identificada por una etiqueta, dentro de un programa de procesamiento por lotes. Al encontrar la etiqueta, MS-DOS procesa los comandos a partir de la lnea siguiente. Sintaxis GOTO etiqueta Parmetros etiqueta Especifica la lnea de un programa de procesamiento por
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. lotes a la que debe dirigirse MS-DOS. Ejemplo: El siguiente programa de procesamiento por lotes dar formato a un disquete en la unidad A como un disquete del sistema. Si la operacin tiene xito, el comando GOTO dirigir MS-DOS a una etiqueta denominada "fin". echo off format a: /s if not errorlevel 1 goto fin echo Ha ocurrido un error durante el formato. :fin echo Fin del programa de procesamiento por lotes. IF (CONDICION) Ejecuta un procesamiento condicional en programas de procesamiento por lotes. Si la condicin especificada por un comando IF es verdadera, MS-DOS ejecutar el comando que siga a la condicin. Si la condicin es falsa, MS-DOS har caso omiso del comando. Podr utilizar este comando slo en programas de procesamiento por lotes. Sintaxis IF [NOT] ERRORLEVEL nmero comando IF [NOT] cadena1==cadena2 comando IF [NOT] EXIST nombrearchivo comando Parmetros NOT Especifica que MS-DOS deber ejecutar el comando solamente si la condicin es falsa. ERRORLEVEL nmero Especifica una condicin verdadera slo si el programa anterior ejecutado por COMMAND.COM devolvi un cdigo de salida igual o mayor que nmero. comando Especifica el comando que MS-DOS deber ejecutar si la condicin previa se cumpli. cadena1==cadena2 Especifica una condicin verdadera solamente si cadena1 y cadena2 son iguales. Estos valores pueden ser cadenas literales, variables de procesamiento por lotes (por ejemplo, %1) o el valor de las variables de entorno (por ejemplo, PATH). Las cadenas literales no necesitan comillas. EXIST nombrearchivo Especifica una existe.
condicin
verdadera
si
nombrearchivo
Pgina n 5
Ejemplos: El ejemplo siguiente se utiliza para comprobar la existencia de un directorio determinado. El comando IF no puede utilizarse para averiguar directamente la existencia de un directorio, pero el dispositivo null (NUL) s existe en cada directorio del disco duro. Por lo tanto, podr comprobar la existencia de dicho dispositivo para averiguar si existe un directorio en el disco duro. if exist c:\midir\nul goto proceso El ejemplo siguiente presentar el mensaje "No se encuentra el archivo de datos" si MS-DOS no puede encontrar el archivo PRODUCTO.DAT:
if not exist producto.dat echo No se encuentra el archivo de datos
Cuando un programa se detiene, ste devuelve un cdigo de salida a MS-DOS. Por ejemplo, generalmente se usa un valor de 0 para indicar que un programa se ha ejecutado con xito. El parmetro ERRORLEVEL le permite usar cdigos de salida como condiciones. El ejemplo siguiente presentar un mensaje si ocurre un error al dar formato a un disquete en la unidad A. Si no se produce un error, el mensaje no aparecer. :comenzar echo off format a: /s if not errorlevel 1 goto fin echo Ocurri un error durante el formato. :fin echo Fin del programa de procesamiento por lotes. Cuando utilice parmetros de ERRORLEVEL en un programa de procesamiento por lotes, lstelos en orden decreciente. CHOICE (Opcin) En un programa de procesamiento por lotes, solicita del usuario que realice una seleccin. Realiza una solicitud y aguarda hasta que el usuario elija entre un conjunto de teclas especfico. Slo podr utilizar este comando en programas de procesamiento por lotes. Sintaxis CHOICE [/C[:]teclas] [/N] [/S] [/T[:]c,nn] [texto] Parmetros
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. texto Especifica el texto que desea presentar antes del smbolo del sistema. Slo se requieren comillas si incluye un carcter modificador (\) como parte del texto antes del smbolo del sistema. Si no especifica texto, CHOICE slo presentar un smbolo del sistema. Modificadores /C[:]teclas Especifica las teclas permitidas en el smbolo del sistema. Al mostrarlas, dichas teclas estarn separadas por comas, aparecern entre corchetes ([ ]) y estarn seguidas de un signo de interrogacin. Si no especifica el modificador /C, CHOICE usar SN como la opcin predeterminada. Los dos puntos (:) son opcionales. /N Evita que CHOICE presente el smbolo del sistema. Sin embargo, an se presentar el texto especificado. Si especifica el modificador /N, las teclas especificadas an sern vlidas. /S Indica que CHOICE deber distinguir entre letras maysculas y minsculas. Si no se especifica el modificador /S, CHOICE aceptar tanto maysculas como minsculas para las teclas que el usuario especifique. /T[:]c,nn Causa que CHOICE haga una pausa durante el nmero de segundos especificado antes de revertir a una tecla especificada. Los valores del modificador /T son los siguientes: c Especifica a qu carcter revertir despus de haber transcurrido nn segundos. El carcter deber encontrarse entre el conjunto de opciones especificado por el modificador /C. nn Especifica el nmero de segundos que deber pausar. Los valores aceptables estn entre 0 y 99. Si se especifica 0, no se realizar la pausa antes de revertir. Ejemplos: Si utiliza la siguiente sintaxis en un programa de procesamiento por lotes, choice /c:snc el usuario ver lo siguiente al iniciar CHOICE:
Pgina n 7
[S,N,C]? Si le agrega texto a la sintaxis, choice /c:snc S, No o Continuar el usuario ver lo siguiente al iniciar CHOICE: S, No o Continuar [S,N,C]? Lo que el usuario ve si se omite el smbolo del sistema Si, como se demuestra en el siguiente ejemplo, se utiliza el modificador /N para omitir el smbolo del sistema en un programa de procesamiento por lotes, choice /n S, No o Continuar? el usuario ver slo el texto especificado al iniciar CHOICE: S, No o Continuar? Lo que el usuario ve si se usa el modificador /T Si utiliza la siguiente procesamiento por lotes, choice /c:snc /t:n,5 el usuario ver lo siguiente al iniciar CHOICE: [S,N,C]? Si despus de 5 segundos el usuario no ha presionado una tecla, CHOICE seleccionar N y devolver un valor ERRORLEVEL de 2. Si el usuario presion una tecla antes de los 5 segundos, CHOICE devolver el valor que corresponda a la seleccin del usuario. Para disponer de la opcin de defragmentacin de la unidad C cuando inicie su PC, agregue las siguientes lneas a su archivo AUTOEXEC.BAT: choice Defrag unidad /ty,5 if errorlevel 2 goto SkipDefrag defrag c: :SkipDefrag Si presiona N antes de 5 segundos, DEFRAG no se ejecutar y CHOICE devolver un valor ERRORLEVEL de 2. Si no presiona N antes de 5 segundos o si elige S, DEFRAG se ejecutar en la unidad C. Uso de CHOICE en un programa de procesamiento por lotes El siguiente programa de procesamiento por lotes sintaxis en un programa de
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. demostrar el uso de la opcin CHOICE para seleccionar uno de tres programas: Editor de MS-DOS, Microsoft Anti-Virus o Copia de seguridad (Backup). Observe que las declaraciones IF ERRORLEVEL aparecen en orden decreciente. MS-DOS considerar que la declaracin IF es veraz si el parmetro ERRORLEVEL devuelto por CHOICE es mayor o igual que el parmetro especificado en el comando IF. @echo off cls echo. echo A Microsoft Editor echo B Microsoft Anti-Virus echo C Microsoft Copia de seguridad (Backup) echo. choice /c:abc Elija una opcin if errorlevel 3 goto MSBackup if errorlevel 2 goto Msav if errorlevel 1 goto Edit :Edit edit goto End :Msav msav goto End :Msbackup msbackup goto End :End CALL Llama a un programa de procesamiento por lotes desde otro sin detener el funcionamiento del primer programa de procesamiento por lotes. Sintaxis CALL [unidad:][ruta] nombrearchivo [parmetros-lotes] Parmetros [unidad:][ruta] nombrearchivo Especifica la posicin y el nombre del programa de procesamiento por lotes que desee llamar. El nombre del archivo deber contener una extensin .BAT. parmetros-lotes Especifica cualquier informacin para la lnea de comandos que el programa de procesamiento por lotes requiera.
Pgina n 9
Ejemplos: Para ejecutar el programa VERIFIC.BAT desde otro programa de procesamiento por lotes, deber incluir el siguiente comando en el programa padre: call verific Supongamos que el programa padre acepta dos parmetros reemplazables y Vd. desea que estos parmetros se pasen a VERIFIC.BAT. Podr incluir el siguiente comando en el programa padre: call verific %1 %2
6.3. Configuracin del arranque del DOS. - Ficheros AUTOEXEC.BAT Y CONFIG.SYS. A continuacin se muestra un ejemplos de fichero AUTOEXEC.BAT AUTOEXEC.BAT
@ECHO OFF REM Crea una cach de disco en memoria extendida LH /L:0;1,44416 /S C:\WIN31\SMARTDRV.EXE REM Programa para compartir programas de nuestro disco duro @LH /L:1,27296 C:\WINDOWS\COMMAND\SHARE.EXE /l:500 /f:5100 REM Antivirus @C:\ANYWA\xscan /nologo c:*.vir PROMPT $P$G PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS;;C:\VIR;C:\UTIL REM Declaracion de variables de entorno SET OS_ROOTDIR=C:\MAXIM SET OS_NETWORK=O3NETNSM.DLL SET OS_LOCAL_HOST=MAXIM SET OS_COMMSEG_SIZE=409600 SET OS_CACHE_SIZE=2097152 SET TEMP=C:\WINDOWS\TEMP REM ************ Modificado por bitMailer ************ PATH=D:\BITMAILR;%PATH% REM ************ Modificado por bitMailer ************ rem- By Windows Setup LH /L:1,13168C:\WINDOWS\COMMAND\DOSKEY LH /L:1,25952 c:\dos\mouse\GMOUSE 2 REM SET INCLUDE=C:\CLIPPER5\INCLUDE REM SET LIB=C:\CLIPPER5\LIB REM SET OBJ=C:\CLIPPER5\OBJ REM SET PLL=C:\CLIPPER5\PLL REM *********** CD-ROM ***************** rem - By Windows Setup LH /L:1,46576 C:\WINDOWS\COMMAND\MSCDEX.EXE /V /E /D:
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. @set path=%path%;C:\ANYWA PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\IBLOCAL\BIN;D:\IDAPI; %PATH% REM Carga la pgina de cdigos 437 mode con codepage prepare=((437) C:\WINDOWS\COMMAND\ega.cpi) LH /L:1,30384 mode con codepage select=437 REM Carga el teclado en espaol LH /L:1,20736 keyb sp,,C:\WINDOWS\COMMAND\keyboard.sys A continuacin se muestra un ejemplo de fichero CONFIG.SYS: CONFIG.SYS REM Crea una cach de disco en memoria extendida DEVICE=C:\WIN31\SMARTDRV.EXE /DOUBLE_BUFFER REM Gestor de memoria extendida. Permite copiar ROM en RAM DEVICE=C:\WINDOWS\HIMEM.SYS /shadow=on REM Gestor de memoria expandida DEVICE=C:\WINDOWS\EMM386.EXE NOEMS MIN=1024 L=1024 D=16 REM Asigna el nmero de buffers de disco BUFFERS=30,0 REM Especifica el numero de ficheros a los que MS-DOS podr REM tener acceso en un momento dado FILES=30 REM Especifica que DOS deber administrar los bloques de REM memoria superior creados por EMM386.EXE DOS=UMB REM Especifica el numero mximo de unidades LASTDRIVE=Z REM Especifica el numero de bloques de control de archivo que REM MS-DOS podr tener abiertos al mismo tiempo FCBS=16,0 REM REM Especifica que parte del DOS deber cargarse en memoria REM alta DOS=HIGH REM ********************************************************** REM ******************** CD-ROM *****************************
DEVICEHIGH /L:1,38256 =\DEV\SLCD.SYS /D:SONY_000 /B:320 /M:P /V /C REM Permite la presentacin de juegos de caracteres internacionales DEVICEHIGH /L:1,17248 =C:\WINDOWS\COMMAND\DISPLAY.SYS CON=(EGA,,1)
REM Prepara a MS-DOS sobre las especificaciones de hora, REM notacion decimal, etc de un pais determinado Country=034,850,C:\WINDOWS\COMMAND\country.sys REM Numero y tamao de pilas para el manejo de interrupciones STACKS=9,256 REM Orden para conectar dos PC's por el puerto serie DEVICEHIGH /L:0;1,9424 /S =C:\DOS\INTERLNK.EXE
Para usar un teclado alemn si su archivo KEYBOARD.SYS est en el directorio DOS de la unidad C, escribira el siguiente comando: keyb gr,,c:\dos\keyboard.sys Supongamos que desea que DISPLAY.SYS acepte un adaptador de vdeo EGA con el juego de caracteres de hardware (437) de Estados Unidos y, posiblemente, dos juegos de caracteres adicionales de MS-DOS. Para conseguir esto y para especificar que DISPLAY.SYS se encuentra en el directorio DOS en la unidad C, deber agregar la siguiente lnea a su archivo CONFIG.SYS: device=c:\dos\display.sys con=(ega,437,2)
Para hacer la conversin a las convenciones de formato de moneda, hora,fecha, maysculas y minsculas utilizadas en Francia, agregue la siguiente lnea al archivo CONFIG.SYS: country=033 En este ejemplo suponemos que COUNTRY.SYS est en el directorio raz de la unidad de inicio. Si COUNTRY.SYS esuviera en otro lugar, se especificara la posicin en el parmetro [unidad:]ruta en la lnea de comandos. Para especificar un juego de caracteres con el cdigo de pas Francia, escriba lo siguiente: country=033,850 Si omite el juego de caracteres pero incluye el parmetro [unidad:][ruta] nombrearchivo, an deber insertar la coma que hubiera precedido al juego de caracteres, como se muestra en el siguiente ejemplo: country=033,,c:\dos\country.sys
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. Para especificar que EMM386.EXE asigne un mximo de 4096K de memoria y garantice 256K de memoria (el valor predeterminado) y para indicar que el archivo EMM386.EXE est localizado en el directorio DOS de la unidad C, agregue la siguiente lnea al archivo CONFIG.SYS: device=c:\dos\emm386.exe 4096 Para emular la memoria expandida, especificar la direccin base del segmento D000h para el marco de pgina EMS y asignar 512K de memoria para EMM386.EXE, use uno de los siguientes comandos: device=emm386.exe 512 frame=d000 device=emm386.exe 512 p0=d000 p1=d400 p2=d800 p3=dc00 Supongamos que adems de especificar las condiciones establecidas en el ejemplo anterior desee impedir que EMM386 use las direcciones de segmentos E000h a EC00h. Para hacer esto y para especificar que EMM386 pueda usar 127 identificadores, agregue la siguiente lnea a su archivo CONFIG.SYS: device=emm386.exe 512 frame=d000 x=e000-ec00 h=127 Para proporcionar acceso al rea de memoria superior y no proporcionar memoria EMS/VCPI, agregue la siguiente lnea a su archivo CONFIG.SYS: device=emm386.exe noems novcpi Para proporcionar acceso al rea de memoria superior y proporcionar memoria EMS/VCPI, agregue la siguiente lnea a su archivo CONFIG.SYS: device=emm386.exe ram
identificadores de memoria extendida. Aumentar el nmero de identificadores de memoria suministrados por HIMEM Para especificar que se pueda usar un mximo de 128 identificadores de memoria extendida simultneamente, agregue el siguiente comando al archivo CONFIG.SYS. device=c:\dos\himem.sys /numhandles=128 Cargar MS-DOS en el rea de memoria alta HIMEM.SYS o algn otro controlador XMS deber estar cargado para poder cargar MS-DOS en el rea de memoria alta (HMA). Para cargar MS-DOS en el rea HMA utilice el comando DOS=HIGH en su archivo CONFIG.SYS. (El comando DOS=HIGH puede aparecer en cualquier lugar del archivo CONFIG.SYS.) Memoria Shadow Algunos sistemas pueden conseguir una ejecucin ms rpida de ROM al "ocultarlo" en RAM, o sea, copiando el cdigo ROM en la memoria RAM (que es ms rpida) al inicio, utilizando algo de memoria extendida. En los PCs que utilicen memoria RAM oculta y que dispongan de menos de 2 MB de RAM, HIMEM intentar desactivar la memoria RAM oculta para recuperar memoria extendida adicional para el uso de Windows. (HIMEM puede desactivar la memoria RAM oculta slo en ciertos tipos de sistemas.) Cuando HIMEM desactiva la memoria RAM oculta, el cdigo ROM se ejecuta en la memoria ROM (ms lenta) en lugar de ejecutarse en RAM. Por lo tanto, es posible que su PC funcione ms lentamente que antes. Para instalar el uso de memoria shadow: DEVICE=C:\WINDOWS\HIMEM.SYS /shadow=on
Supongamos que necesita usar la caracterstica de doble bfer de SMARTDrive de manera que pueda usar EMM386 para obtener acceso al rea de memoria superior. Para habilitar el doble bfer, debera aadir el siguiente comando a su archivo CONFIG.SYS: device=c:\dos\smartdrv.exe /double_buffer
Ciclo formativo de grado superior. Desarrollo de Aplicaciones Informticas. Para mejorar la velocidad de su PC, podra instalar tambin el cach de disco de SMARTDrive aadiendo la siguiente lnea a su archivo AUTOEXEC.BAT: c:\dos\smartdrv
Disco Ram Para crear una unidad de RAM con memoria extendida y asignar a RAMDRIVE.SYS 64K (la cantidad predeterminada) de memoria extendida, deber agregar la siguiente lnea a su archivo CONFIG.SYS: device=c:\dos\ramdrive.sys /e Este comando carga RAMDRIVE.SYS desde el directorio C:\DOS. Supongamos que desea instalar RAMDRIVE.SYS en memoria expandida y asignar 4 MB (4096K) de memoria expandida a la unidad de RAM. Para ello, y para especificar que RAMDRIVE.SYS est ubicado en eldirectorio DOS de la unidad C, agregue la siguiente lnea a su archivo CONFIG.SYS: device=c:\dos\ramdrive.sys 4096 /a Ahora supongamos que desea asignar 2048K de memoria extendida a RAMDRIVE.SYS y crear una unidad de RAM que contenga sectores de 512 bytes y un lmite de 1024 entradas en su directorio raz. Para ello, y para especificar que RAMDRIVE.SYS est ubicado en el directorio DEVICES de la unidad D, agregue la siguiente lnea a su archivo CONFIG.SYS: device=d:\devices\ramdrive.sys 2048 512 1024 /e
rem Configuracin para el menu 1 [Menu2] rem Configuracin para el menu 2 [Menun] rem Configuracin para el menu n Al arrancar el ordenador muestra el siguiente mensaje: MS-DOS 6.2 Men de Inicio ========================= 1. Menu1 2. Menu2 3. Menun Realice su seleccin: 1 F5=Ignorar arch/inicio F8=Verificar cada lnea de CONFIG.SYS y AUTOEXEC.BAT [N] En el bloque [Menu] se definen las configuraciones que aparecern al iniciarse el sistema. Para utilizar varias configuraciones debemos crear este bloque. Estos son los comandos que puede contener el bloque [Menu] menuitem: Elemento del menu. menudefault: Elemento del menu seleccionado por defecto. menucolor: Establece los colores de texto y de fondo de la lista de menus. submenu: Especifica que un elemento de menu presenta otro menu. numlock: Establece si la tecla de bloqueo numrico se activa al iniciar el sistema. Ejemplo: [menu] menuitem=Red, Inicie la red menuitem=No-Red, No inicie la red menucolor=15,1 menudefault=Red, 20
En el bloque [Menu] solo puede haber hasta 9 menuitems, la sintaxis de estos es la siguiente: menuitem=nombrebloque, texto_que_aparecer_en_el_menu En nuestro ejemplo se han definido dos elementos del menu, en caso de ser necesarios ms, se definiran submenus, lo veremos en el prximo ejemplo. La sintaxis de menucolor es la siguiente: menucolor=color_texto, color_fondo
Estos son los valores de los 0 Negro 8 1 Azul 9 2 Verde 10 3 Cin 11 4 Rojo 12 5 Magenta 13 6 Marrn 14 7 Blanco 15
colores: Gris Azul brillante Verde brillante Cin brillante Rojo brillante Magenta brillante Amarillo Blanco brillante
Con menudefault elegimos la configuracin por defecto, si no se especifica tiempo, MS-DOS se inicia con la configuracin por defecto. Ejemplo ms complejo: [menu] menuitem config_bsica, Slo configuracin bsica menuitem config_completa, Configuracin normal submenu menred, Configuracin normal con red [menred] menuitem lanman, Iniciar Microsoft LAN Manager menuitem linux, Iniciar Linux [config_bsica] dos=high device=c:\dos\himem [config_completa] include=config_bsica dos=umb device=c:\dos\emm386 ram
Pgina n 17
device=c:\dos\ramdrive.sys 512 [lanman] include=config_completa rem Los comandos para Microsoft LAN Manager apareceran aqu. [linux] include=conf_completa rem Los comandos para Linux apareceran aqu. En este ltimo ejemplo hemos visto un nuevo elemento, "include", mediante este comando incluimos la configuracin que especificamos. Otro estamento que se puede utilizar es Common, que se emplea para definir comando comunes a varias configuraciones, veamos el ejemplo: [Menu] menuitem=Miguel menuitem=Reyes [Common] dos=high buffers=15 device=c:\dos\himem.sys [Miguel] files=20 device=c:\dos\emm386 2048 [Reyes] files=40 device=c:\net\network.sys [Common] Este PC esta configurado para los usuarios Miguel y Reyes, ambos cargan el DOS en memoria alta, establecen buffers en 15 y cargan el controlador de memoria alta. Despus se ejecuta para Miguel: files=20 y device=c:\dos\emm386 2048; y para Reyes: files=40 y device=c:\net\network.sys Para utilizar configuraciones mltiples procederemos de la siguiente forma: en el AUTOEXEC.BAT,
Pgina n 19