pedrito
Goto Top

Verknüpfungen in einer Backup-Kopie anpassen

Hallo zusammen,
ich habe eine Musiksammlung, die ich nach Genres geordnet habe. Um nun auch nach Gruppennamen suchen zu können, habe ich in einem Ordner Verknüpfungen zu den einzelnen Bands angelegt.
Nun habe ich den Ordner Musik und den Ordner Verknüpfungen auf eine andere Festplatte kopiert um ein Backup zu haben.
Leider stimmen natürlich auf der neuen Platte die ganzen Verknüpfungen nicht mehr, da sich ja der Laufwerksbuchstabe geändert hat.
Nun meine Frage. Gibt es irgendeine Möglichkeit die Verknüpfungen auf der Backupplatte so anzupassen, das der Pfad wieder stimmt?

zB
J:\Musik\Genres\Rock\Gruppe\Plattentitel in F:\Musik\Musik\Genres...usw
Es ändert sich also jeweils nur der Anfang des Pfades.
Ich hoffe ich habe mich verständlich ausgedrückt.
Danke schon mals im vorraus für eure Antworten
Gruß
Pedro

Content-Key: 186935

Url: https://administrator.de/contentid/186935

Printed on: April 23, 2024 at 11:04 o'clock

Member: bastla
bastla Jun 23, 2012 updated at 13:04:35 (UTC)
Goto Top
Hallo Pedrito und willkommen im Forum!

Falls sich nur der Laufwerksbuchstabe zB von "D:" auf "J:" ändern soll, dann etwa so:
Ordner = "J:\Verknüpfungen"  
Von = "D:"  
Nach = "J:"  

Set fso = CreateObject("Scripting.FileSystemObject")  
set sh = CreateObject("WScript.Shell")  

For Each File In fso.GetFolder(Ordner).Files
    If LCase(fso.GetExtensionName(File.Name)) = "lnk" Then  
        Set Shortcut = sh.CreateShortcut(File.Path)
        Shortcut.TargetPath = Replace(Shortcut.TargetPath, Von, Nach, 1, 1, vbTextCompare)
        Shortcut.WorkingDirectory = Replace(Shortcut.WorkingDirectory, Von, Nach, 1, 1, vbTextCompare)
        Shortcut.Save
    End If
Next
Bitte beachten: Es werden alle Verknüpfungen im angegebenen Ordner bearbeitet - daher zum Testen besser einen anderen Ordner mit nur ein paar Verknüpfungen verwenden ...

Grüße
bastla
Member: Pedrito
Pedrito Jun 25, 2012 at 14:56:00 (UTC)
Goto Top
Hallo basla,
vielen Dank für deine Antwort.
Nun muss ich zugeben, ich bin absolut kein Programmierer.
Mit Skripts kann ich leider nicht viel anfangen.
Kannst du mir also bitte noch sagen, wie ich deinen Vorschlag realisiere?
Sprich das Skript zum laufen bekomme?
Mag es sein, das Teil im Notepad abzuspeichern mit der Endung .vb
und dann über Start-.Ausführen laufen lassen?
Wo ändere ich das Skript um zwei Testordner zu testen?
Danke für deine Hilfe
Gruß
Pedrito
Member: bastla
bastla Jun 25, 2012 at 20:55:09 (UTC)
Goto Top
Hallo Pedrito!
Mag es sein, das Teil im Notepad abzuspeichern mit der Endung .vb
und dann über Start-.Ausführen laufen lassen?
Guter Plan - allerdings ist die Endung ".vbs" und Du kannst auch einfach per Doppelklick starten ...
Wo ändere ich das Skript um zwei Testordner zu testen?
Kannst Du das etwas näher ausführen? Soferne in beiden Fällen die gleiche Ersetzung vorzunehmen ist (also wie im Beispiel oben "D:" durch "J:"), kannst Du das etwa so machen:
Ordnerliste = Array ("J:\Verknüpfungen", "J:\Weitere Verknüpfungen", "J:\Noch\mehr\Verknüpfungen")  
Von = "D:"  
Nach = "J:"  

Set fso = CreateObject("Scripting.FileSystemObject")  
set sh = CreateObject("WScript.Shell")  

For Each Ordner In Ordnerliste
    For Each File In fso.GetFolder(Ordner).Files
        If LCase(fso.GetExtensionName(File.Name)) = "lnk" Then  
            Set Shortcut = sh.CreateShortcut(File.Path)
            Shortcut.TargetPath = Replace(Shortcut.TargetPath, Von, Nach, 1, 1, vbTextCompare)
            Shortcut.WorkingDirectory = Replace(Shortcut.WorkingDirectory, Von, Nach, 1, 1, vbTextCompare)
            Shortcut.Save
        End If
    Next
Next
WScript.Echo "Fertig."  
Grüße
bastla
Member: Pedrito
Pedrito Jun 26, 2012 at 09:10:52 (UTC)
Goto Top
hi bastla,
Aaaalso,
meine Verknüpfungen zur Musikdatenbank befinden sich auf der Festplatte J: im Ordner Musik\Gruppen
sie sollen mit den Verknüpfungen im Ordner auf f:\Musik\Musik\Gruppen syncronisiert werden.
Soll heissen, die ursprüngliche Verknüpfung zu einer Musikgruppe lautet zB: J:\Musik\Genres\Latin\¡Cubanismo!
Sie müsste auf der Backupplatte dann lauten: F:\Musik\Musik\Genres\Latin\¡Cubanismo!
Es muss bei jeder Verknüpfung also J:\Musik
durch F:\Musik\Musik ersetzt werden
zum Testen würde ich einfach 2 neue Ordnerstrukturen anlegen, zB: J:\test und F:\test\test, und ein paar der vorhanden Verknüpfungen dort rein kopieren. Ich sollte also wissen, wo ich im Skript die nötigen Veränderungen vornehmen müsste.
Ich hoffe, jetzt ist es verständlicher.
Übrigens danke, für deine Mühe mit mir DAU. face-smile
liebe Grüße
Pedrito
Member: bastla
bastla Jun 26, 2012 at 12:11:23 (UTC)
Goto Top
Hallo Pedrito!

Hast Du Dir eigentlich hinsichtlich der ersten 3 Zeilen des Scripts schon irgendwelche Gedanken gemacht? face-wink

Grüße
bastla
Member: Pedrito
Pedrito Jun 26, 2012 at 15:27:14 (UTC)
Goto Top
Hallo bastla,
wie ich ganz oben schon beschrieben habe, bin ich absoluter DAU in Programmierung, da versteh ich echt nur Bahnhof und Abfahrt. Deswegen habe ich mir auch noch keine Gedanken über die ersten drei Zeilen gemacht, weil ich nicht kapier, was da passiert.
Sorry für meine Blödheit
gruß
Pedrito
Member: bastla
bastla Jun 26, 2012 at 17:17:17 (UTC)
Goto Top
Hallo Pedrito!

Ganz weit oben hatte ich doch
Falls sich nur der Laufwerksbuchstabe zB von "D:" auf "J:" ändern soll, dann etwa so:
geschrieben, und in den Zeilen 2 und 3 kommen ein "D:" und ein "J:" vor - ja, ich weiß, Du willst inzwischen nicht von "D:" nach "J:", sondern von "J:\Musik" nach "F:\Musik\Musik" ändern ...
Dafür verrate ich aber einfach mal, was in Zeile 1 steht: Dort wird der Ordner, in dem die Verknüpfungen liegen, die geändert werden sollen, festgelegt - da der bei Dir nun nicht "J:\Verknüpfungen" heißt (vor allem, wenn Du meiner Empfehlung folgst und eine Verknüpfungen in einen Testordner kopierst), könntest Du ja vielleicht ... face-wink

Grüße
bastla
Member: Pedrito
Pedrito Jun 27, 2012 at 10:57:17 (UTC)
Goto Top
Hi bastla,
ok, danke, jetzt hab ichs geschnallt.
Ich war wohl etwas auf der Leitung gesessen.
Danke dir vielmals für deine Geduld mit mir.
Schöne Zeit noch
Grüße
Pedrito