Wie übertrage ich mit dem Basis-Windows XP eine Dateiliste an einen Offlinebenutzer?

Wie übertrage ich mit dem Basis-Windows XP eine Dateiliste an einen Offlinebenutzer?

Ich habe viele Dateien (Hunderte von GB) und möchte einige davon meinem Freund geben. Aber er muss auswählen, welche Dateien er braucht, und ich kann ihm nicht alle Dateien auf einmal geben (ich habe keinen so großen USB-Stick oder keine so große USB-Festplatte). Ich kann eine Liste aller Dateien erstellen und sie ihm auf einen kleinen USB-Stick übertragen, und dann kann er sagen, welche Ordner er will und welche nicht.

Wie erstelle ich eine Dateiliste, die sich problemlos in einer Standardinstallation von Windows XP oder mit einem kleinen Programm ähnlich dem Windows Explorer anzeigen lässt? Ich kann eine ls -lRähnliche Liste erstellen und sie als txt-Datei speichern, aber für meinen Freund wird es schwierig sein, diese Liste anzuzeigen. Es gibt ein diskdirPlugin für Total Commander, das Ordner in einer Textdatei archivieren kann, in der nur die Namen und Pfade der Dateien gespeichert sind. Dieses Plugin ermöglicht es Total Commander dann, sich in diesem Archiv wie in einem Zip- oder Arj-Archiv zu bewegen. Aber ich denke, Total Commander ist für meinen Freund zu schwierig zu verwenden, daher frage ich nach einer Lösung ähnlich dem Windows Explorer (z. B. ermöglicht WinZip dem Explorer, sich in Zip-Archiven zu bewegen, und ich möchte so etwas).

Ich kann also jedes beliebige Programm installieren und auch Viewer-Programme mit Dateiliste auf einem USB-Stick speichern.

Antwort1

Vorausgesetzt, Sie könnenPowerShell v2Das folgende Skript muss auf Ihrem lokalen Computer installiert sein (oder Sie haben es bereits installiert). Es kann Ihren Zweck erfüllen (es funktioniert möglicherweise in Powershell v1, ist aber nicht sicher):

$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")
}

Ändern Sie den Pfad $dupedirzum Stammverzeichnis des Pfads, den Sie Ihrem Freund mitteilen möchten. Sobald dieses Skript ausgeführt wurde, sollten Sie eine genaue Kopie der Dateistruktur (aber keine tatsächlichen Dateien) haben, die Sie Ihrem Freund anzeigen lassen möchten, und zwar in C:\Temp (oder woanders, wenn Sie $newdirauch das Verzeichnis für die Variable ändern). Die $newdirVariable sollte sich nicht im Verzeichnis der Variable befinden $dupedir, da es sonst zu einer Endlosschleife kommt, die möglicherweise den gesamten Speicherplatz verbraucht (selbst wenn die „Dateien“ 0-Byte-Dateien sind).

Das Schöne an Powershell ist, dass Sie Skripte in der Befehlszeile „schreiben“ können (ähnlich wie bei Bash). Kopieren Sie den Code in einen Texteditor, nehmen Sie die Pfadänderungen vor, kopieren Sie das Ganze und fügen Sie es in Ihr Powershell-Fenster ein. Dann wird es seine Magie entfalten.

Ich weiß, Sie haben erwähnt, dass Sie Bash haben, und wenn Sie dies auf einer Unix-/Linux-Maschine wollten, hätte ich es möglicherweise in Bash tun können. Leider war ich nie sehr gut mit Bash-Skripten, wenn dafür das Herumspielen mit dem Windows-Dateisystem erforderlich war.

Antwort2

Verwenden Sie einfach den dir /s > C:\temp\filename.txtBefehl. Dadurch wird die Verzeichnisstruktur in die Datei C:\temp\filename.txt ausgegeben. Beginnen Sie an dem Speicherort, von dem Sie nach unten wechseln möchten.

Dann schicken Sie ihm einfach die TXT-Datei.

Antwort3

Warum nicht eine ZIP-Datei verwenden? Sie können alle Dateien in einem Fenster anzeigen und sie dennoch in verschiedene Ordner extrahieren.

Antwort4

Ich habe eine Weile über diese Frage nachgedacht und bin auf zwei Lösungen gestoßen. Die beste davon ist die folgende.

VerwendencdcatDabei handelt es sich um ein Programm, das Dateisystembäume wie DVDs oder Festplatten indizieren kann (ohne große Dateien im Index zu speichern) und mehrere davon in einem Katalog speichern kann. Dies ist wahrscheinlich das Programm der Wahl für eine solche Aufgabe, da es auch Metainformationen von Musik (ID3-Tags) und Videos (Auflösung, Dauer usw.) in den Katalog einbezieht. Eine weitere nette Funktion ist, dass cdcat berechnen kann, wie groß ein indiziertes Verzeichnis oder eine Datei (Knoten) ist.

Es speichert alle Metainformationen (und kleine Dateien wie nfo, wenn Sie es entsprechend konfigurieren) in einer komprimierten XML-Datei. Um Dateien von Ihnen (Person A) zu jemandem (Person B) zu kopieren, nachdem Sie ihm (B) erlaubt haben, auszuwählen, was er eigentlich will, könnte das folgendermaßen funktionieren:

  1. Person A indiziert alle Dateien, die sie interessieren (Sie sollten vorher die Einstellungen von cdcat überprüfen, um sicherzugehen, was eingeschlossen wird, z. B. NFO, ID3-Tags usw.) und speichert sie als einen Katalog.
  2. Person A kopiert den Katalog an Person B.
  3. Nun muss Person B die Dateien irgendwie auswählen. Ich bin auf die Idee gekommen, das Kategoriefeld zu verwenden, das jedem Knoten (Verzeichnis oder Datei) hinzugefügt werden kann. Dieses Feld könnte beispielsweise als Priorität verwendet werden. Jeder Knoten, dem keine Kategorie rekursiv zugeordnet ist oder der eine spezielle Kategorie hat, wird später nicht kopiert. Die Kategorie wird auch in der XML-Datei gespeichert und es ist nicht sehr schwer, einen Parser dafür zu schreiben, um beispielsweise ein .bat-Skript oder ein Bash-Skript zu exportieren und alle gewünschten Dateien zu kopieren.
  4. Person B gibt das betriebssystemspezifische Kopierskript an Person A weiter (oder Person B gibt den geänderten Katalog zurück und lässt Person A das Kopierskript erstellen).
  5. Person A führt das Kopierskript aus und gibt Person B den Datenträger. (Es gibt dabei eine kleine Unannehmlichkeit, da cdcat den Pfad zum Einhängepunkt, von dem aus die Daten in den Katalog indexiert wurden, nicht speichert.)
  6. Person B kopiert die Dateien auf seinen Speicher und gibt den Datenträger an Person A zurück.

Diese Lösung ist noch nicht perfekt, aber die beste, die mir eingefallen ist. Ich habe sie noch nicht verwendet, werde dies aber in Zukunft tun. Dabei muss ich eine Erweiterung oder ein Skript schreiben, das Kopierskripte für Linux und Windows generiert. Mein Plan ist, dies direkt in das cdcat-Programm einzubinden.

Eine zweite und anspruchsvollere Lösung, die es wert ist, beraten zu werden, ist die VerwendungGit-Anhangwelches hierfür vermutlich auch verwendet werden kann, allerdings habe ich hierüber nicht so sorgfältig nachgedacht wie über die Lösung mit cdcat, da dieser zweite Ansatz irgendwie voraussetzen würde, dass beide Personen (A und B) über git-annex verfügen und wissen, wie man es benutzt …

Ich werde Dich auf dem Laufenden halten.

verwandte Informationen