MS-DOS




  1. Ejecutar aplicaciones DOS en ventana... desde una ventana DOS
  2. Limpiar el contenido del menú "Documentos"
  3. Activar el MS-DOS de Windows Millennium
  4. Modificar la ubicación de los archivos temporales
  5. Hacer que un programa compruebe si está en una ventana DOS
  6. Personalizar el 'prompt' de las ventanas MS-DOS
  7. Proteger las carpetas desde MS-DOS

[Volver]



Ejecutar aplicaciones DOS en ventana... desde una ventana DOS

Fuente:

  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME/NT/2000/XP

Requiere:

  • Nada especial
Puede parecer algo raro, pero se puede hacer y tiene su utilidad. Supongamos que estás en una ventana MSDOS haciendo cualquier cosa y quieres modificar un archivo con el editor de MSDOS (EDIT.COM). Tendrías que abrir otra ventana MSDOS, llegar hasta el directorio donde te encuentras en la actual ventana, ejecutar EDIT y abrir el archivo que querías modificar. ¿No sería mucho más cómodo escribir algo como esto?...

NVD EDIT <archivo>

Pues esta sencillez se consigue haciendo un archivo de proceso por lotes como este...

@start command.com /c %1 %2 %3 %4 %5 %6 %7 %8 %9

... se le pone de nombre NVD.BAT (NVD es por Nueva Ventana DOS) y se coloca en una carpeta que esté accesible en el PATH del sistema, por ejemplo WINDOWS\COMMAND.

NVD.ZIP

[Volver]



Limpiar el contenido del menú "Documentos"

Fuente:

  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME/NT/2000/XP

Requiere:

  • Nada especial
Windows muestra una lista de los últimos archivos abiertos en el menú "Inicio > Documentos". En un momento dado puede ser interesante tener un acceso directo que limpie el contenido de ese menú de "Documentos". Este archivo PIF hace precisamente eso.

La instrucción es muy sencilla...

Para Windows 95/98/98SE/ME

COMMAND.COM /C echo s | del %windir%\recent\*.*

Para Windows NT/2000/XP

COMMAND.COM /C echo s | del %userprofile%\recent\*.*

En el ZIP tienes una versión del truco para cada uno de los sistemas.

ATENCIÓN

Si piensas utilizar este truco en un sistema Windows 95/98/98SE/ME con el mecanismo de múltiples usuarios activado, deberás modificar el archivó PIF para que apunte a la carpeta de datos del usuario ya que la variable de entorno %windir% no apuntará al sitio correcto en ese caso.

DELMENUDOC.ZIP

[Volver]



Activar el MS-DOS de Windows Millennium

Fuente:

  • Grupos de noticias
  • Reines [MFD]

Debería funcionar con:

  • Windows ME

Requiere:

  • Nada especial
Parece ser que Microsoft no ha dejado al DOS tan de lado como prometía que había hecho en WME. El MS-DOS de toda la vida sigue estando presente, pero oculto, y sólo hace falta un pequeño retoque en unos archivos (IO.SYS, COMMAND.COM y REGENV32.EXE) para que aparezca exactamente igual que en las versiones anteriores de Windows 9x. Esto te permitirá arrancar el sistema en modo MS-DOS pulsando Shift-F8, reiniciar en modo MS-DOS desde el entorno gráfico, y lo más importante, volverás a poder usar CONFIG.SYS y AUTOEXEC.BAT para definir variables de entorno, o cargar controladores o programas residentes.

Si no lo he entendido mal, esto es lo que tienes que hacer...

  1. Sigue las instrucciones cuidadosamente.

  2. Crea un directorio temporal, por ejemplo C:\TEMP y copia dentro los siguientes archivos:
    • C:\WINDOWS\COMMAND.COM
    • C:\WINDOWS\COMMAND\EDB\IO.SYS
    • C:\WINDOWS\SYSTEM\REGENV32.EXE

    Nota: Supongo que además del IO.SYS y del COMMAND.COM que te propone Reines podrías usar los del directorio raíz.

  3. Asegúrate de que los tres archivos se pueden rescribir cambiando sus atributo con la siguiente instrucción:

       ATTRIB -R -H -S *.*

  4. Copia el programa parcheador WINMEDOS.COM dentro de la carpeta temporal y ejecútalo.

  5. Una vez parcheados los archivos cópialos en sus ubicaciones definitivas:
    • IO.SYS en "C:\"
    • COMMAND.COM en "C:\" y "C:\WINDOWS\"
    • REGENV32.EXE en "C:\WINDOWS\SYSTEM\"

  6. Edita CONFIG.SYS y AUTOEXEC.BAT y haz los siguientes cambios:
    • CONFIG.SYS
      Añade la línea... "DEVICE=C:\WINDOWS\IFSHLP.SYS"
    • AUTOEXEC.BAT
      Añade la línea... "C:\WINDOWS\WIN.COM" (debe estar al final del archivo)

    Nota sobre este punto: De las dos modificaciones, la única realmente imprescindible para que WME funcione bien es la de CONFIG.SYS. Sin IFSHLP.SYS el controlador de dispositivo virtual (VXD) VFAT no se iniciará, y sin esto Windows pierde el acceso a discos y archivos de 32 bits, no puede manejar particiones FAT32 y no puede entender los nombres largos. La modificación de AUTOEXEC.BAT sólo hace que se cargue el entorno gráfico de Windows de forma automática al iniciar el sistema, pero esto mismo se puede hacer tecleando 'WIN [Intro]' en la línea de ordenes del recién recuperado DOS.

Con esto ya deberías haber recuperado el acceso completo a MS-DOS en modo real, reinicia y prueba.

DOS-WME.ZIP (12 Kb)

[Volver]



Modificar la ubicación de los archivos temporales

Fuente:

  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME

Requiere:

  • Nada especial
Algunas operaciones del sistema y muchos programas, sobre todo los instaladores, utilizan archivos temporales durante su ejecución. Por defecto, estos archivos temporales se crean en una carpeta de nombre 'TEMP' que está dentro de la carpeta de instalación de Windows (normalmente 'C:\WINDOWS'), de forma que la ruta a estos archivos sería 'C:\WINDOWS\TEMP\*.*'.

Si todo funcionase como debe esa carpeta siempre debería estar vacía... pero no es así, y lo más normal es encontrarla llena de 'basura'. La cosa tiene fácil solución... se borran los archivos y listo.

Limpiar la carpeta resuelve el problema momentáneamente, pero no me gusta tener una carpeta llena de basura dentro de la carpeta principal del sistema, y que además sólo sirve para incrementar la fragmentación de la unidad. Creo que lo más recomendable es poner esa carpeta en otra parte, fuera de la carpeta WINDOWS, y a ser posible en otra unidad.

Para conseguir esto se debe indicar a Windows que los archivos temporales los tiene que crear en otro sitio. Esto se hace con una variable de entorno, que se llama precisamente 'TEMP', y que existe para este fin. Si esta variable no se define (que suele ser lo normal) Windows la crea en el momento de iniciarse apuntando a la carpeta 'TEMP' dentro de la carpeta 'WINDOWS'.

Edita el archivo AUTOEXEC.BAT que encontrarás en el directorio raíz de la unidad de arranque de tu sistema (normalmente será la unidad C:). Y añade estas líneas...

SET TEMP=D:\TEMP
SET TMP=D:\TEMP
IF NOT EXIST %TEMP% MD %TEMP%
IF NOT EXIST %TMP% MD %TMP%

Las dos líneas 'SET' definen las dos variables de entorno que indican a Windows las rutas (principal y alternativa) a las carpetas que el sistema debe usar para los archivos temporales. Las dos líneas 'IF' comprueban que las carpetas indicadas existen, y si es necesario las crearán automáticamente.

PD: Lo mejor es añadir las líneas al principio del archivo AUTOEXEC.BAT de forma que se definan lo antes posible y así las pueda usar cualquier otro programa que se ejecute durante el arranque del sistema.

[Volver]



Hacer que un programa compruebe si está en una ventana DOS

Fuente:

  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME/NT/2000/XP

Requiere:

  • Nada especial

Algunos programas para MS-DOS no deben, o no pueden, ejecutarse correctamente en una ventana. Si el programa es capaz de detectar que está corriendo en una ventana DOS no pasará nada porque él mismo impedirá su ejecución. Pero si el programa no es capaz de hacer esto la cosa puede terminar muy mal.

Para impedir que un programa se ejecute en una ventana DOS podemos usar una variable de entorno que nos señala si la sesión MS-DOS desde la que consultamos su valor es una ventana. Se trata de 'WINDIR', que se crea automáticamente durante el arranque de Windows, y que permanece en el entorno de la máquina virtual del sistema durante toda su ejecución. Para ver si existe, y cual es su valor, abre una ventana MS-DOS, escribe 'SET' y pulsa la techa [Intro].

Se puede usar para nuestros propósitos desde dentro de un fichero BATCH que inicie el programa DOS conflictivo sólo si la variable no existe. La cosa podría ser algo así...

@ECHO OFF
IF "%WINDIR%"=="" GOTO VALE

:AVISO
ECHO ERROR: ESTE PROGRAMA NO PUEDE EJECUTARSE EN UNA VENTANA
GOTO FIN

:VALE
PROGRAMA.EXE

:FIN

Llama al fichero BATCH como tu quieras (pero con extensión .BAT), y en lugar de 'PROGRAMA.EXE' pones el nombre de tu programa MS-DOS.

[Volver]



Personalizar el 'prompt' de las ventanas MS-DOS

Fuente:

  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME

Requiere:

  • Nada especial

Antes de nada, el 'prompt' es ese símbolo tan espartano de las sesiones DOS (real o en ventana) en el que un simple cursor de texto parpadeante espera a que escribamos una instrucción para que DOS la interprete, o el nombre de un programa para que DOS lo ejecute. Típicamente tiene este aspecto...

C:\>_

Como otras muchas cosas, ese símbolo se puede personalizar mediante unos códigos para hacer que nos proporcione algo de información. Las lista de posibilidades se puede ver si escribimos 'prompt /?' y pulsamos [Enter]. Algunas de las cosas interesantes que puede mostrar son...

Código Significado
$T Hora actual
$D Fecha actual
$P Unidad y ruta actual
$V Número de versión de Windows
$N Unidad actual
$G > (signo mayor que)
$_ Retorno de carro y salto de línea

La forma de hacer que las muestre es escribiendo la palabra 'prompt' seguida de la secuencia de códigos que queremos utilizar. Por ejemplo, si queremos que el 'prompt' muestre la fecha, un espacio en blanco, y la unidad y ruta actuales, debemos escribir 'prompt $d $p'. Esto proporcionará un 'prompt' más o menos como este...

Dom 06/10/2002 C:\_

Podemos hacer que esos códigos se asignen automáticamente en el arranque editando el archivo de configuración AUTOEXEC.BAT y añadiendo cualquiera de estas dos líneas...

  • PROMPT $D $P
  • SET PROMPT=$D $P

Esto define el 'prompt' para el modo DOS real, y si no se especifica nada más ese 'prompt' también se utilizará en las ventanas MS-DOS. Si queremos un 'prompt' diferente para las ventanas DOS debemos definirlo de esta manera...

  • SET WIMPMT=$D $P

Usando estas dos posibilidades podemos crear un 'prompt' que nos proporcione información útil para movernos por la estructura de unidades y carpetas, y que nos recuerde si estamos en DOS real o en una sesión DOS en ventana. La cosa sería así...

  • SET PROMPT=[D] $P$G
  • SET WINMPT=[W] $P$G

De esta forma el 'prompt' de DOS real estaría indicado por [D], y el DOS en ventana estaría indicado por [W]. Seguido a esto aparecería la unida y ruta actuales con el signo > (mayor que) y el cursor parpadeando. Sencillo, práctico y elegante.

[Volver]



Proteger las carpetas desde MS-DOS

Fuente:

  • Prensa especializada
  • Grupos de noticias
  • Elisoft

Debería funcionar con:

  • Windows 95/98/98SE/ME/NT/2000/XP

Requiere:

  • Nada especial
Proteger nuestro archivos de miradas indiscretas es algo básico, pero no tan fácil de conseguir como debería, sobre todo en sistemas operativos que no están pensados para ser especialmente seguros.

Existe un truco, que aprovechando un pequeño error del sistema de archivos, consigue que cualquier carpeta sea "inaccesible" para cualquier operación que pretendamos tomar sobre ella desde el entorno gráfico de Windows. No será posible abrirla, borrarla, renombrarla, copiarla o acceder a ella desde el entorno de red... está, pero no está.

El truco consiste en incluir un símbolo gráfico especial en el nombre de la carpeta. Estos símbolos se introducen pulsando la tecla 'Alt' y, sin soltarla, se teclea su código ASCII en el teclado numérico. Aquí tienes unos cuantos códigos ASCII que generan símbolos utilizables para este truco... 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194, 195, 196, 200, 201, 202, 203, 204, 205, 206, 254.

Si esto se hace desde el 'Explorador de archivos' aparece un carácter válido, pero si se hace en una sesión MS-DOS aparece un símbolo gráfico que el 'Explorador de archivos' interpretará erróneamente como el carácter válido equivalente.

Un ejemplo lo dejará totalmente claro y demostrará la eficacia del invento:

  • Abrimos el 'Explorador de archivos' y creamos una carpeta de nombre 'privado', por ejemplo en C:\TEMP.
  • Metemos en la carpeta 'privado' unos archivos de prueba.
  • Abrimos una sesión MS-DOS, nos colocamos en el sitio donde hemos creado la carpeta 'privado' (en C:\TEMP) y cambiamos su nombre escribiendo el comando 'REN privado privado{Alt+254}' y pulsando la techa [Intro].
  • Ahora regresamos al 'Explorador de archivos' y probamos a ver el contenido de esa carpeta... si es que podemos.
  • Para desprotegerla repetimos el cambio de nombre, pero esta vez escribiendo el comando 'REN privado{Alt+254} privado' y pulsando la techa [Intro].

Para hacer este proceso un poco más fácil he escrito un pequeño archivo BATCH que permite proteger y desproteger una carpeta de forma sencilla. Inicialmente lo he llamado 'PROT.BAT', pero le puedes poner el nombre que quieras siempre que tenga extensión '.BAT'. Lo mejor es colocar el archivo BATCH en una carpeta que esté accesible en el PATH del sistema, por ejemplo WINDOWS\COMMAND. Para saber cómo se maneja sólo tienes que escribir su nombre en una ventana MS-DOS.

PROTCARP.ZIP

[Volver]


La Web de ELISOFT
Copyright © Elisoft - Septiembre 2000