BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Crear archivos por lotes desde txt con los nombres

Malenag

Tengo un archivo.txt con muchas líneas y un nombre en cada línea y lo que me gustaría hacer es un archivo o carpeta con cada nombre de cada línea. ¿Sabéis como podría hacerlo? Algún bat o programa de terceros. Necesito que el buscador que uso registre todos esos nombres.

Ya sé que puedo buscar dentro del archivo y eso es lo que hago, pero es más práctico de la otra forma.

Explicación detallada

A ver, voy a intentar explicar el problema desde el principio porque quizá haya otra forma de enfocarlo distinta de la que yo he elegido, aunque es seguro que se pueden hacer carpetas que tengan los nombres de las líneas de un txt, concretamente se puede hacer con Excel, pero no con la versión que yo uso que es un poco antigua.

Tengo un disco duro externo con unos 100.000 archivos comprimidos con RAR, y lo que quiero es poder buscar en esos archivos (por nombre de archivo) sin conectar el disco duro al ordenador, es decir lo que quiero saber es si un determinado título está en el disco externo o no está. He hecho un listado con todos esos nombres en un txt, y ya sé que se puede indizar el contenido del txt, pero no con el buscador que uso que solo busca nombres, tamaños, fechas de modificación y de creación, etc. Por lo tanto, una solución es hacer archivos o carpetas vacías con todos esos nombres para que el buscador que uso los pueda indexar.

Quizá haya otra forma de hacerlo que no sea con Excel. Escucho sugerencias, pero por favor que no sean: cambia de Excel, o cambia de buscador o pon los .rar en el ordenador. El reto es, tengo 100.000 líneas de texto en un txt (son títulos de libros) y tengo que poder buscar en ellas con el buscador que uso, o bien, otra solución que no sea con el listado.

Black Hole
1

Tan simple como un MD dentro de un bucle FOR. Una carpeta no sería lo mismo que un archivo, además ¿qué tipo de archivo?
¿Que quieres decir con eso de que "necesito que el buscador registre los nombres"? ¿Qué es para ti "registrar" en este contexto? Tal vez entendamos cosas diferentes.
Explicate mejor, por favor.

🗨️ 1
Malenag

El tipo de archivo me da lo mismo porque lo que quiero es que el buscador indize esos nombres de archivos o carpetas para poder buscar cómodamente

campi

Pero buscar el que ? Sabes que el contenido de los ficheros también se indexa ? Que vas a guardar en esos ficheros ? O solo quieres crear una estructura de carpetas para guardar archivos dentro en un futuro ?

naveganteperdido

has explicado algo que no importa, el como has llegado a tener esa lista, y no has explicado que quieres hacer con ella, porque dices que quieres usarla con "un buscador" pero no das ningun detalle del buscador

Black Hole

Has modificado esta mañana el mensaje inicial del hilo que escribiste ayer tarde. Eso no genera alertas a quienes hemos contestado… no ha sido la forma más inteligente de gestionar el hilo.

Dicho lo cual, tu idea es matar moscas a cañonazos. Si usas las características internas de Windows Search (no lo has confirmado) para realizar esas búsquedas, eso implica estresar sobremanera el disco, cuando justamente el objetivo de un RAR es tenerlo todo empaquetadito para que no moleste y no ocupe sitio. Cada entrada de directorio o de fichero vacío en un sistema de ficheros NTFS como mínimo ocupa 4 KB, así que 100.000 de ellas serían 400 MB malgastados. No lo podrías hacer en una partición formateada como FAT32 porque el límite de ficheros por directorio ahí sería 65.534.

Aún así, si quieres realizar tu peregrina idea, quizás la forma menos intrusiva sería crear un único directorio donde almacenases todas las entradas con ficheros de 0 bytes. Pero si por casualidad llegas con el Explorador de Windows a esa carpeta algún día, lo más seguro es que se te quede colgado el proceso (y tal vez el sistema entero) intentando listar sus contenidos. Deberás hacerlo desde línea de comandos. Si copias estos comandos en un BAT y lo ejecutas, creará en el directorio actual una carpeta LIBROS con tantos ficheros como los contenidos en LISTA.TXT:

@ECHO OFF
MD LIBROS
FOR /F "tokens=*" %%a in (LISTA.TXT) DO @TYPE NUL> "LIBROS\%%a"

Ahora bien, soluciones que te permitan verificar si un nombre existe en una lista, hay muchísimas otras, empezando con los comandos FIND o FINDSTR incluidos de serie en Windows.
Pero si no quieres modificar tu metodología de uso actual del equipo…

BocaDePez

Muchas gracias a todos por las respuestas. Ya lo tengo, tengo una carpeta con 98.987 carpetas vacías ocupando 0 Kb. Ahora, el buscador de terceros que uso ya me ha indizado todos esos títulos. Saludos y feliz navidad.

BocaDePez

Hola, no quise contestarte a lo de que se va a ralentizar el explorador de archivos o el sistema, hasta haberlo probado con distintos programas; explorador, antivirus etc. Ahora te puedo decir que todo va suave como la seda. Cuando abro la carpeta, el uso del procesador sube 4/5% durante 2 segundos, lo mismo si uso la barra de desplazamiento vertical para ver el último archivo de la carpeta aunque sea la primera vez de la sesión. El explorador usa 25 Mb de RAM. Todo está perfecto.

No me gustan los buscadores que indexan el contenido de los archivos porque tengo mucho texto en mi ordenador y crean unos índices de mucho peso. El Windows Search es uno de los programas más inútiles del Windows, a ratos le he visto usar 20% del procesador y a veces más. Los que indexan solo los nombres y las propiedades son rapidísimos y muy ligeros, por eso me gustan.

🗨️ 1
Black Hole

Bueno, era solo una advertencia de una posibilidad. Ignoro qué versión de Windows usas, qué potencia de procesador y sobre todo cuánta RAM tienes, que sería aquí el factor clave.
Nunca he tenido carpetas tan masivas y realmente en equipos de gama media/baja, eso es un problema. Pero si te ha ido todo bien, solo puedo alegrarme.

¿Qué buscador usas? Es que no lo has comentado, no sé si es un secreto, hahaha.

BocaDePez
1

El ordenador que uso para esto es un portátil con i5-8250U y 8Gb de RAM. Buscadores como los que he comentado hay varios que puedes probar: Wizfile, Everything, Si no has usado este tipo de buscadores te sorprenderán, Wizfile llevo usándolo solo unos días y creo que me voy a quedar con él. Si lo inicias con el SO te hace seguimiento de cambios, pero no es necesario porque cuando lo inicias siempre lee la tabla maestra de archivos (MFT) y tarda solo 3 o 4 segundos y en mi caso son casi 500.000 archivos en 2 discos internos. Puedes buscar por nombre, por tamaño, por fecha de modificación. Son pequeñas joyas para Windows, muy ligeros y usando muy pocos recursos.

BocaDePez

@ECHO OFF

MD LIBROS

FOR /F "tokens=*" %%a in (LISTA.TXT) DO @TYPE NUL> "LIBROS%%a"

este codigo no funciona

🗨️ 1
Black Hole

Copié el script que acababa de probar en mi propio ordenador, así que el código funciona. Pero creo adivinar por qué puedes tener problemas.
Ese código está diseñado para ejecutarse en un fichero BAT. Si se usa desde línea de comandos directamente, hay que sustituir %%a por %a, con solamente un único carácter %
Teclear HELP FOR para más información sobre las diferentes sintaxis de ese comando.

Nota: Por cierto, sería LIBROS\%%a (o la sintaxis %a si es orden directa desde CMD). Al pegarlo en el foro te ha eliminado la \ barra oblicua de directorio.