¿Crear archivos automáticamente en Windows?

¿Crear archivos automáticamente en Windows?

Creo que me gustaría regenerar un directorio de archivos de texto/falsos en una memoria USB con los nombres exactos de los archivos que existen en un directorio maestro.

El directorio maestro está en una unidad de terabytes y es demasiado grande para caber en cualquier memoria USB. Pero, cuando uso la memoria USB, me gustaría colisionar los nombres de los archivos cuando descargo un duplicado de otros lugares. es decir: intento descargar algo y me dice: "Ya tienes un archivo llamado..."

No me importa ejecutar este script (siempre que sea relativamente rápido) manualmente, cuando actualizo el directorio maestro con nuevos archivos adicionales, y mover la estructura de archivos resultante de archivos falsos manualmente a la memoria USB.

Tengo al menos 3 niveles de estructura de directorios. He creado una estructura de directorio de prueba simple con archivos txt, frente a la estructura real (en su mayoría) pdf. Cuando salgo tree /a /f . > list.txt,:

    Folder PATH listing for volume Windows
    Volume serial number is 00C7-D795
    C:\USERS\USER\DESKTOP\TEST
    |   list.txt
    |   script.bat
    |   script.txt
    |   
    \---Top_Lvl
        |   file-2nd-1.txt
        |   file-2nd-2.txt
        |   file-2nd-3.txt
        |   
        +---2nd_Level-1
        |       file-3rd-1.txt
        |       file-3rd-2.txt
        |       file-3rd-3.txt
        |       
        +---2nd_Level-2
        |   |   file-3rd-4.txt
        |   |   file-3rd-5.txt
        |   |   file-3rd-6.txt
        |   |   
        |   \---3rd_Level-1
        |           file-4th-1.txt
        |           file-4th-2.txt
        |           
        \---2nd_Level-3
                file-3rd-7.txt

No sé cómo escribir un encabezado para que un lector de PDF muestre un archivo con una extensión .pdf (pero en realidad es un archivo de texto), lo cual sería una ventaja realmente increíble. Y no puedo encontrar un comando (attrib no funciona, hasta donde yo sé) que muestre el tamaño del archivo en la salida de texto. Ya que sería genial tener disponible el tamaño del archivo real haciendo clic en el archivo falso, sin tener que buscar nada en otro lugar.

¿Posibles soluciones parciales?

Encontré esto:

Windows/Crear archivos txt de subcarpetas con nombres de archivos

Pero parece ser un desastre y solo funciona con un nivel de directorios.

Y cuando lo reescribí/modifiqué, funcionó una vez y luego dejó de funcionar:

    @echo off

    for /dd %%D in (*) do (
      cd %%~nxD
      tree /a /f > ..\%%~nxD.txt
      cd ..

      echo %%~nxD > dir_info.tmp
      for /f "skip=3 delims=*" %%a in (%%~nxD.txt) do (
        echo.%%a >> dir_info.tmp
      )
      copy /y dir_info.tmp %%~nxD.pdf
      del /f /q dir_info.tmp
    )

Volcaría los resultados dentro del directorio en el que se ejecuta, en lugar de colocarlos en el escritorio (y no sé cómo colocarlos en un escritorio predeterminado, en lugar de codificarlos, si uso más de uno). computadora/cuenta para acceder a la unidad del directorio maestro). Y no estoy seguro de que puedas especificar la memoria USB, ya que probablemente cambie todo el tiempo, dependiendo de qué más esté conectado.

Además, suelo utilizar sistemas Windows antiguos, por lo que estaba buscando un archivo por lotes. Si hay una aplicación que hace esto, definitivamente la consideraría, en lugar de volver a tallar la rueda.


@eris sugirió Robocopy y hay algo llamado RichCopy:

https://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight

Pero esas aplicaciones haríanactualduplicados del directorio maestro, y no tengo tanto espacio de almacenamiento libre, ni en la unidad maestra (y, como se indicó anteriormente: en la memoria USB que funciona).

Parece que no fui lo suficientemente claro; Estoy intentando crear un directorio oculto, que tenga todos los nombres de archivos (y, de manera óptima, información sobre el archivo real, como el tamaño), incluidas las extensiones, pero en un espacio mínimo; Supongo que será un megabyte o 3 en consumo de espacio real (ya que cada archivo y directorio usa ~bloque) frente a cientos de gigas (por ejemplo: archivo de 50 MB, archivo de 1 MB, archivo de 832 k, archivo de 10 MB, archivo de 15 MB).


Parece que lo que quiero es robocopy, si puedo hacer que la línea de comando funcione correctamente:

ROBOCOPY Top_Lvl Shadow /CREATE

No crea subdirectorios.

Respuesta1

@eris tuvo la idea correcta.

Desde la línea de comando:

robocoy *Top_Lvl* *Shadow* /create /mir

Parece que crea una estructura de directorio sombra con archivos de longitud cero que refleja el directorio maestro. Todo lo que queda es descubrir cómo hacer esto en una unidad, lo que debería ser una simple cuestión de encontrar rutas para el origen y el destino. Sin embargo, debe usarse con precaución ya que no arroja automáticamente un error antes de sobrescribir archivos y directorios (subóptimo, en mi humilde opinión).

No realiza el trabajo adicional de poder crear archivos que también proporcionen información (tamaño del archivo original), pero es una solución bastante buena por ahora.

información relacionada