El Blog de Enrique Cortés

jueves, 3 de enero de 2008

Imprimir el contenido de una carpeta (Windows XP/Vista)


Windows XP y Windows Vista no incluyen manera alguna de generar un listado de un directorio, a excepción expresa del intérprete de comandos. Pero es posible añadir una opción en el menú contextual de una carpeta que permita imprimir directamente en la impresora predeterminada los nombres de los archivos y subcarpetas contenidos en una carpeta, mostrando el resultado igual que cuando ejecutamos el comando "DIR" en el símbolo de sistema. Para ello, tan sólo será necesario crearnos un archivo .BAT y realizar un ajuste en el registro de windows. Además de imprimirse directamente el contenido de la carpeta, se creará un archivo .LOG en la carpeta madre con el contenido de la impresión.

Mediante las siguientes instrucciones, aparecerá una nueva entrada en el menú contextual de carpetas llamada Imprimir esta carpeta. Al pulsarla, automáticamente se llevará a cabo la impresión de su contenido y se crerá un archivo .LOG con el nombre "Contenido de la carpeta.log". Igualmente se ejecutará la impresión y el archivo .LOG si pulsas la tecla I del teclado. Para conseguirlo, sigue este procedimiento:


1. Desde el menú Inicio > Ejecutar, teclea notepad y pulsa Aceptar.
2. Escribe el siguiente texto en el Bloc de notas:


@echo off
dir %1 /-p /o:gn > "%temp%\Listing"
start /w notepad /p "%temp%\Listing"
dir %1 > "Contenido de la carpeta.log"
del "%temp%\Listing"
exit


3. Pulsa en Archivo > Guardar como... En el cuadro Nombre escribe el texto siguiente y pulsa Guardar:

%windir%\Imprimir_carpeta.bat

Nota: en Windows Vista es posible que no puedas guardar el archivo directamente en la carpeta Windows siguiendo este método, debido a que se necesitan privilegios especiales. En este caso, guarda el archivo Imprimir carpeta.bat en el Escritorio y posteriormente ejecuta el comando %windir% para abrir la carpeta Windows. Arrastra el archivo .bat a la carpeta Windows y concede los permisos necesarios pulsando en Continuar.


4.
Accede al editor del registro (Inicio > Ejecutar > regedit) y localiza la siguiente clave:

HKEY_CLASSES_ROOT\Directory\shell

Crea una nueva subclave, colgando de "shell", con el nombre Print_Folder. Selecciona ésta última y en el panel derecho del editor, modifica el valor alfanumérico (Predeterminado) con el siguiente contenido:

Imprimir esta carpeta


5.
A continuación, crea una nueva subclave, colgando de "Print_Folder", con el nombre command. Selecciona ésta última y en el panel derecho del editor, modifica el valor alfanumérico (Predeterminado) con el siguiente contenido:

Imprimir_carpeta.bat "%1"

Cierra ya el editor del registro y prueba cómo funciona el invento. Ten en cuenta que los objetos (carpetas y archivos) con el atributo de oculto que se encuentren en la carpeta que quieres imprimir, no aparecerán en la impresión.



Nota: Se pueden producir problemas graves si se modifica el Registro incorrectamente utilizando el Editor del Registro o cualquier otro método. Estos problemas pueden requerir que se reinstale de nuevo el sistema operativo. Modifica el Registro bajo tu propia responsabilidad.

*

*


4 comentarios:

AMADIS dijo...

Buenas tardes Enrique.

He leido su explicacion sobre como imprimir el contenido de una carpeta (Windows XP/Vista) y es correcto funciona en mi windows 7 32 bits. Sin embargo, por ser parecido a lo que expone, me podria indicar como sacar un listado de archivos contenidos en una carpeta en un documento. txt, sin que este se imprima, y que aparezca la opcion de listar archivos en el menu contextual que era sumamente sencilllo en xp pero que en Windows 7 32 bits no encuentro las opciones. Solo quiero listar los archivos para poder pegar y crear indices en un documento word.

Asi en XP era:

* Hacer clic en Mi PC
* Hacer clic en Herramientas > Opciones de carpeta
* Seleccionar la pestaña Tipo de archivos
* Se abre una ventana. Hacer clic en Carpeta y dar clic en Opciones avanzadas.
* Se abrirá la ventana “Editar tipo de archivo”, hacer clic en Nuevo
* Se abrirá una nueva ventana. En el campo Acción, poner un texto que describa lo que hará el comando que aparecerá en el menú contextual cuando hagamos clic derecho sobre una carpeta (por ejemplo, comando listing: Listar los archivos de la carpeta)
* En el campo Aplicación utilizada para realizar la acción, pegar línea de comando: command.com /c tree /F /A > C:\Listing.txt

Una pregunta mas si colocas el cursor sobre un archivo y das boton derecho te aparecen una serie de opciomes en el menu contextual pero ademas de las de windows cuando cargas algunos programas se añaden automaticamente por ejemplo en mi caso winrar, adobe etc.... o si abres el firefox y das al boton derecho del raton aparecen vinculos que en mi caso la lista se hace larga flasgot. idm etc sin que sea necesario.Existe alguna posibilidad de eliminar aquellos que no desees.

Gracias por tu ayuda y le felicito por su blog.

estergo dijo...

Hola Enrique,
Tengo el Windows 7 Home Premium, y no se como hacer un listing de carpetas que contienen archivos wav.
Necesito listar el nombre y la duracion de cada uno de los archivos. Me puedes ayudar?
Mil gracias.

Anónimo dijo...

Muy bueno el tutorial! me resultó super bien sin ningun problema.
Algo que me di cuenta es que la impresion que se genera es hecha por el archivo bat el cual tiene el codigo que se pegó para que funcione, por lo tanto, si ese codigo que se pegó en el bloc de notas fue de tamaño 18, ese mismo tamaño se usará para la impresion. Yo bajé el tamaño de fuente a 12 y resultó, el texto sale impreso a ese tamaño.
Saludos.

Anónimo dijo...

Muchas, muchas gracias realmente, Enrique!!! Después de tantos años de publicado el blog aún funciona excelentemente. Windows 7 ultimate 64bits José Luis.