¿Cómo transferir una lista de archivos a un usuario sin conexión con Windows XP básico?

¿Cómo transferir una lista de archivos a un usuario sin conexión con Windows XP básico?

Tengo muchos archivos (cientos de GB) y quiero regalarle algunos a mi amigo. Pero debe seleccionar qué archivos necesita y no puedo darle todos los archivos a la vez (no tengo una memoria USB o un disco duro USB tan grande). Puedo hacer una lista de todos los archivos y transferirlos en una pequeña memoria USB, y luego él puede decir qué carpetas quiere y cuáles no.

¿Cómo debo hacer la lista de archivos, que se pueden ver fácilmente en la instalación estándar de Windows XP o con algún pequeño programa similar a Windows Explorer? Puedo hacer una ls -lRlista similar a - y almacenarla en texto, pero a mi amigo le resultará difícil ver esta lista. Hay un diskdircomplemento de Total Commander, que puede archivar carpetas en archivos de texto con solo los nombres y rutas de los archivos almacenados. Luego, este complemento permite que Total Commander se mueva dentro de este archivo como dentro de zip o arj. Pero creo que total Commander es demasiado difícil de usar para mi amigo, así que le pregunto acerca de una solución similar al Explorador de Windows (por ejemplo, winzip permite que el Explorador se mueva dentro de archivos zip, y quiero algo así).

Entonces. Puedo instalar cualquier programa, también puedo almacenar el programa de visualización con la lista de archivos en una memoria USB.

Respuesta1

Suponiendo que puedas conseguirpowershell v2Instalado en su máquina local (o ya lo tiene instalado), el siguiente script puede hacer lo que busca (podría funcionar en powershell v1, no estoy seguro):

$dupedir = "D:\Backup"
$newdir = "C:\Temp"
$dupelist = Get-ChildItem -Force -Recurse -ErrorAction SilentlyContinue $dupedir

foreach ($item in $dupelist) 
{
    If ($item -is [Io.DirectoryInfo])
    {
        $itemtype = "directory"
    }
    If ($item -is [Io.FileInfo])
    {
        $itemtype = "file"
    }

    New-Item -Force -type $itemtype -Path $item.FullName.Replace("$dupedir","$newdir")
}

Cambie la ruta $dupedira la raíz de la ruta que desea informarle a su amigo. Una vez que este script termine de ejecutarse, debería tener un espejo exacto de la estructura de archivos (pero no de los archivos reales) que desea que su amigo revise en C:\Temp (o en otro lugar si $newdirtambién cambia el directorio de la variable. No deje que la $newdirvariable esté dentro del directorio de la $dupedirvariable o obtendrá una recursividad infinita que eventualmente podría consumir todo el espacio en disco (incluso si los "archivos" son archivos de 0 bytes).

Lo bueno de PowerShell es que puedes "escribir" scripts en la línea de comandos (similar a bash). Copie el código en un editor de texto, realice los cambios de ruta, luego copie y pegue todo en la ventana de PowerShell y hará su magia.

Sé que mencionaste que tienes bash, y si quisieras esto en una máquina Unix/linux, podría haberlo hecho en bash. Desafortunadamente, nunca fui muy bueno con las secuencias de comandos bash cuando requería jugar con el sistema de archivos de Windows.

Respuesta2

Solo usa el dir /s > C:\temp\filename.txtcomando. Esto generará la estructura del directorio en el archivo C:\temp\filename.txt. Comience en la ubicación desde la que desea bajar.

Luego simplemente envíale el archivo TXT.

Respuesta3

¿Por qué no utilizar un archivo zip? Puede ver todos los archivos en una ventana y, al mismo tiempo, extraerlos en diferentes carpetas.

Respuesta4

Pensé en esta pregunta hace algún tiempo y encontré dos soluciones. El mejor es el siguiente.

Usarcdcatque es un programa que puede indexar árboles de sistemas de archivos como DVD o discos duros (sin almacenar archivos grandes en el índice) y almacenar varios de ellos en un catálogo. Este es probablemente el programa elegido para tal tarea porque también incluirá metainformación de música (etiquetas ID3) y vídeos (resolución, duración, etc.) en el catálogo. Otra característica interesante es que cdcat puede calcular el tamaño de un directorio indexado o de un archivo (nodo).

Guardará toda la metainformación (y archivos pequeños como nfo si lo configura para hacer esto) en un archivo XML comprimido. Para copiar archivos suyos (persona A) a alguien (persona B), después de permitirle (B) seleccionar lo que realmente quiere, podría funcionar así:

  1. La persona A indexa todos sus archivos interesantes (debe verificar la configuración de cdcat antes de hacerlo para asegurarse de qué se incluirá, como nfo, etiquetas ID3,…) y los guarda como un catálogo.
  2. La persona A copia el catálogo a la persona B.
  3. Ahora la persona B tiene que seleccionar los archivos de alguna manera. Se me ocurrió la idea de utilizar el campo de categoría que se puede agregar a cada nodo (directorio o archivo). Este campo podría utilizarse como prioridad, por ejemplo. Cualquier nodo que no tenga una categoría adjunta de forma recursiva o que tenga una categoría especial no se copiará más adelante. La categoría también se guarda en el archivo XML y no es muy difícil escribir un analizador para exportar, por ejemplo, un script .bat o un script Bash para copiar todos los archivos deseados.
  4. La persona B le da el script de copia específico del sistema operativo a la persona A (o, por supuesto, la persona B le devuelve el catálogo modificado y le permite a la persona A generar el script de copia).
  5. La persona A ejecuta el script de copia y le entrega a la persona B el medio de datos. (Habrá un pequeño inconveniente porque cdcat no guarda la ruta al punto de montaje desde donde se indexaron los datos en el catálogo).
  6. La persona B copia los archivos a su almacenamiento y devuelve el soporte de datos a la persona A.

Esta solución aún no es perfecta, pero es la mejor que se me ocurrió. No lo he usado todavía pero lo haré en el futuro. Durante esto necesitaré escribir alguna extensión o script que genere scripts de copia para Linux y Windows. Mi plan es incluir esto directamente en el programa cdcat.

Una segunda solución, más sofisticada y que vale la pena asesorar, es utilizaranexo gitque probablemente también pueda usarse para esto, pero no pensé en esto con tanto cuidado como en la solución con cdcat porque este segundo enfoque de alguna manera requeriría que ambas personas (A y B) tengan git-annex y sepan cómo usarlo...

Te mantendré informado.

información relacionada