Page 1 of 2

Copy cloud folder structure with links [german]?

Posted: 09 May 2016 20:04
by Elbs
Hallo Herr Lessau,
wenn ich in der Cloud eine komplexe Ordnerstruktur mit Verlinkungen zu Hauptdateien erstellen, kann ich dann mit XYplorer diese Struktur auf eine andere Partition, Festplatte oder CD umziehen und alle Verlinkungen in einem Stapelauftrag anpassen?
Oder gibt es da eine bessere Lösung.

Re: German

Posted: 09 May 2016 21:19
by highend
"In der Cloud" Wo genau liegen die Daten denn? Dropbox, Amazon AWS, ...?

[Split from the original thread, the original one is for the german translation]

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 13:37
by Elbs
onedrive oder GDrive oder DeutschlandCloud MS

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 14:17
by highend
Wenn sie per WebDAV und zugehörigem Laufwerksbuchstaben ansprechbar sind, spricht da nichts dagegen.

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 14:55
by Elbs
Verknüpfungen.JPG
Habe meinen Wunsch mal als Bild dargestellt.

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 15:31
by highend
Zeig mir mal das Ziel der Verknüpfung vor und nach der Kopieraktion

Rechtsklick auf die "Datei.txt - Verknüpfung", Eigenschaften, Reiter "Verknüpfung" im neu erschienenden Fenster

Alles was unter "Ziel:" steht, kopieren und dann hier posten.

Ich würde dann ein script schreiben, was die Verknüpfungen wieder richtigstellt...

Sind alle Dateinamen auf genau diese Art verknüpft worden?

Also "Datei.txt" hat immer eine Verknüpfung die dann "Datei.txt - Verknüpfung.lnk" heißt?

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 15:37
by Elbs
Vor dem kopieren
O:\Cloud\OneDrive\test160413\Verknüpfung\Datei.txt

Wunsch nach dem kopieren
C:\Z\Datei.txt
Verknüpfungen2.JPG

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 15:42
by highend
Ok, 2 Fragen zum Schluss:

- Sind alle Dateinamen auf genau diese Art verknüpft worden?
Also "Datei.txt" hat immer eine Verknüpfung die dann "Datei.txt - Verknüpfung.lnk" heißt?

- Sind Verknüpfungen immer im gleichen Verzeichnis wie ihre Zieldatei?

Re: Copy cloud folder structure with links [german]?

Posted: 11 May 2016 16:53
by highend
Falls meine 2 Fragen mit "ja" beantwortet werden sollten, hier ein script, was die Verknüpfungen auf die richtige Datei umbiegen würde

Man muss sich im obersten Verzeichnis der kopierten Struktur befinden, wenn man es ausführt! Bei dir also z.B. in "C:\Z"

Bevor du es auf echte Daten loslässt (.lnk files kann ich nicht umbiegen ohne hier VBScript / Powershell Code zu verwenden), sie werden in den Papierkorb gepackt und dann mit der richtigen Datei als Ziel neu erstellt), mach ein Backup der Daten!

Code: Select all

    $log = "";
    $lnks = formatlist(quicksearch("*.lnk /f"), "f", <crlf>, "!*$RECYCLE.BIN*<crlf>*System Volume Information*");

    setting "BackgroundFileOps", 0;
    foreach($lnk, $lnks, <crlf>) {
        $path = gpc($lnk, "path");
        $lnkName = gpc($lnk, "base");
        $targetName = replace($lnkName, " - Verknüpfung");
        if !(exists("$path\$targetName")) {
            $log = $log . "$path\$lnkName -> Points to an unknown target file<crlf>";
            continue;
        } else {
            delete 1, 0, $lnk;
            new("$path\$lnkName", "link", "$path\$targetName");
        }
    }
    if ($log) { text $log; }
    else { text "No inconsistencies found, all .lnk files should now point to their real (local) target!"; }

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 10:17
by Elbs
Oh Sorry
2* Nein
Habe das Beispiel (zu) start vereinfacht
die Verlinkungen haben andere und total verschiedene namen und sollten diese Namen behalten
Und auch die Zieldatei ist immer in anderen verschiedenen Ordnern.
Aber schon mal herzlichen Dank für die Mühe.

Michael Elbs

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 10:54
by highend
Ok, verstehe.

Dann folgendes:

1. Stelle bitte sicher, dass du, wenn du das script ausführst im Zielordner bist (bei dir also in diesem Fall "C:\Z")
2. Das script fragt dich nach dem cloud path, von dem du aus kopiert hast. Bei deinem Beispiel war das nun:
"O:\Cloud\OneDrive\test160413".
Diesen Pfad trägst du in der Abfrage ein. Am besten per Copy & Paste. Ohne Anführungszeichen!. Ob mit oder
ohne abschließendem "\" ist egal.

O:\Cloud\OneDrive\test160413
und
O:\Cloud\OneDrive\test160413\

sind also äquivalent.

Jetzt sucht das script alle .lnk Dateien die es unter (hier: C:\Z) finden kann, holt sich jeweils das Ziel der Verknüpfung raus,
wirft den von dir eingefügten Teil des cloud Pfadnamens (auch wenn es hier ein lokaler Laufwerksbuchstabe ist!) raus und setzt
den aktuellen Pfad (also wieder C:\Z) davor ein. Das funktioniert natürlich auch für Strukturen mit Unterordnern und für .lnk Dateien, die eine Verknüpfung auf eine Datei außerhalb ihres eigenen Verzeichnisses aufweisen.

Dann schaut es nach, ob die Datei auf die der neue Link zeigen würde existiert und wenn ja löscht es die alte .lnk Datei und legt
eine neue mit der korrekten Verknüpfung an. Ist die Zieldatei nicht vorhanden, weil die .lnk z.B. auf eine Datei verweist die außerhalb der von dir kopierten Struktur liegt, bricht das script nicht ab, sondern sammelt diese falschen links in einem Log, welches am Ende der Aktion angezeigt wird...

Wie gesagt, probiere es an Backupdateien aus, ich nutze den ganzen Cloudschwachsinn nicht für "echte" Daten (und schon gar kein OneDrive...) und spiele das Ganze nur mit lokalen Testdaten durch...

Code: Select all

    $log = "";
    $lnks = formatlist(quicksearch("*.lnk /f"), "f", <crlf>, "!*$RECYCLE.BIN*<crlf>*System Volume Information*");

    $onlinePath = trim(input("Enter the cloud path you've copied from..."), "\", "R");

    setting "BackgroundFileOps", 0;
    foreach($lnk, $lnks, <crlf>) {
        $lnkPath = gpc($lnk, "path");
        $lnkTarget = property("#LinkTarget", $lnk);
        // Build new target link
        $newLnkTarget = <curpath> . "\" . substr($lnkTarget, strlen($onlinePath) + 1);

        if !(exists($newLnkTarget)) {
            $log = $log . "$newLnkTarget -> Points to an unknown file...<crlf>";
            continue;
        } else {
            delete 1, 0, $lnk;
            new($lnk, "link", $newLnkTarget);
        }
    }
    if ($log) { text $log; }
    else { text "No inconsistencies found, all .lnk files should now point to their real (local) target!"; }

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 11:21
by Elbs
Supe danke es geht :-)

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 13:57
by Elbs
Kann auf den Eintrag in der *.lnk Datei zugegriffen werden.
Ich möchte ja eigentlich eine komplexe Verlinkungsstruktur von einem Ort an einen anderen verschieben oder kopieren.
Es müsste ein Dialog sein der wie folgt aussieht:
Suchen/Ersetzten in Ziel:
Suche nach: O:\Cloud
Ersetzen durch: C:\Z

Das Ergebnis ist dann C:\Z\OneDrive\test160413\ beim Ursprünglichen
Zieleintrag von "O:\Cloud\OneDrive\test160413"
Ist das möglich?

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 14:04
by highend
Allerdings ungetestet:

Code: Select all

    $log = "";
    $lnks = formatlist(quicksearch("*.lnk /f"), "f", <crlf>, "!*$RECYCLE.BIN*<crlf>*System Volume Information*");

    $search = trim(input("Search for..."), "\", "R");
    $replace = trim(input("Replace with..."), "\", "R");

    setting "BackgroundFileOps", 0;
    foreach($lnk, $lnks, <crlf>) {
        $lnkTarget = property("#LinkTarget", $lnk);
        // Build new target link
        $newLnkTarget = replace($lnkTarget, $search, $replace);

        if !(exists($newLnkTarget)) {
            $log = $log . "$newLnkTarget -> Points to an unknown file...<crlf>";
            continue;
        } else {
            delete 1, 0, $lnk;
            new($lnk, "link", $newLnkTarget);
        }
    }
    if ($log) { text $log; }
    else { text "No inconsistencies found, all .lnk files should now point to their real (local) target!"; }

Re: Copy cloud folder structure with links [german]?

Posted: 12 May 2016 16:12
by Elbs
Bin begeistert, Danke
es kommt zwar noch eine kleine Box vorab, aber damit kann ich Leben.
Verknüpfungen3.JPG