Suchen & Ersetzen von Verknüpfungspfad - Win7

Derp90

Cadet 3rd Year
Registriert
Jan. 2014
Beiträge
52
Hallo,

ich habe ca. 300 Verknüpfungen auf verschiedenen Ebenen innerhalb eines Ordners, bei denen alle der Pfad umgeändert werden müsste.
Also z.B. den Pfad einer Verknüpfung umschreiben von C:\Users\ich\Pictures\Bilder_2014 auf E:\Users\ich\Pictures\Bilder_2014
Gibt es irgend eine Möglichkeit, in allen Verknüpfungen die sich in einem gewissen Ordner befinden von C: auf E: zu ändern?
Das Problem ist, vom Serveradmin wurden die kompletten Inhalte von einem Server auf einen anderen kopiert, nun funktionieren sämtliche Verknüpfungen nicht mehr.

Leider habe ich auf meiner eigenen Suche keine Lösung gefunden. Vielleicht könnt ihr mir ja helfen.
Danke!
 
Erst GANZ lesen:

Benutze ein vbscript:
-----------------------------------------------------
Code:
On Error Resume Next
set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
set objArgs = WScript.Arguments
set fld = fso.GetFolder(objArgs(0))
set fc = fld.Files
For Each f1 in fc
If UCase(Right(f1.name, 3)) = "LNK" Then
Set sl = WshShell.CreateShortcut(f1.Path)
z = sl.TargetPath
z = Replace(z, "D:\Alter\Pfad", "D:\Neuer\Pfad")
sl.TargetPath = z
y = sl.WorkingDirectory
y = Replace(y, "D:\Alter\Pfad", "D:\Neuer\Pfad")
sl.WorkingDirectory = y
sl.Save
End If
Next
WScript.Echo "Änderungen ausgeführt!"
------------------------------------------------------
Kopiere den Text zwischen den Linien (ohne die Zahlen am Anfang) in die Zwischenablage und füge ihn in ein leeres Editor(Notepad)-Fenster ein. Speichere die Datei als "ChangeShortcut.vbs" in Deinem Ordner "SendTo", den findest Du unter:
C:\Users\DeinName\AppData\Roaming\Microsoft\Windows\SendTo\

Danach klicke im Windows Explorer mit der rechten Maustaste auf den Ordner, der die Verknüpfungen enthält und wähle im Kontextmenü "Senden an", den Eintrag "ChangeShortcuts.vbs".

In dem Script musst Du die Bezeichnungen für den alten und neuen Pfad vorher so ändern, dass dort die tatsächlichen Angaben stehen. Nun wird jede Verknüpfung, in der als Ziel "D:\Alter\Pfad" vorhanden ist, in "D:\Neuer\Pfad" geändert. Falls der Pfad auch unter "Ausführen in" eingetragen ist, wird er dort ebenfalls geändert. Verknüpfungen, in denen "D:\Alter\Pfad" nicht vorkommt, werden nicht verändert. Etwaige Argumente bleiben unverändert.

Wenn die Änderungen fertig sind, gibt es eine Meldung, während der Ausführung wird *nichts* angezeigt.
...HIER geklaut.

Hoffe es klappt :)

PS: Vorher bitte die Verknüpfungen sichern, ich habe es nicht getesten sondern nur "geklaut".
 
Hi Yakomo,

leider hab ich auf den benötigten Ordner keinen Schreibzugriff.
Gibts sonst noch Möglichkeiten?
Unsere IT ist leider vollkommen lustlos (oder, im schlimmeren Falle, dumm).

Danke!
 
Hi Derp90,

habe es jetzt zu Hause selber mal getestet - Resultat: das Script funktioniert.

Um das Problem mit deiner Schreibberechtigung zu umgehen, kannst du das Script auch in einem beliebigen anderen Ordner speichern (z.B. auf deinem Desktop oder im übergeordneten Ordner des zu bearbeitenden Ordner). Anschließend einfach den gewünschten Ordner mit der Maus per Linksklick auf die Scriptdatei ziehen und loslassen - etwas warten - fertig!

Für dein oben genanntes Szenario...:

Ist: C:\Users\ich\Pictures\Bilder_2014
Soll: E:\Users\ich\Pictures\Bilder_2014​

...muss dein Script so aussehen (ohne die je Zeile führenden Zahlen [1. bis 19.]):
Code:
On Error Resume Next
set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
set objArgs = WScript.Arguments
set fld = fso.GetFolder(objArgs(0))
set fc = fld.Files
For Each f1 in fc
If UCase(Right(f1.name, 3)) = "LNK" Then
Set sl = WshShell.CreateShortcut(f1.Path)
z = sl.TargetPath
z = Replace(z, "C:", "E:")   'hier wird der Pfad hinter "Ziel:" geändert
sl.TargetPath = z
y = sl.WorkingDirectory
y = Replace(y, "C:", "E:")   'hier wird der Pfad hinter "Ausführen in:" geändert
sl.WorkingDirectory = y
sl.Save
End If
Next
WScript.Echo "Änderungen ausgeführt!"

Somit müsste dein Problem eigentlich "Geschichte" sein :)

Ergänzung: Trotzdem vorher eine Sicherung des Originalordners machen.
 
Zuletzt bearbeitet: (Ergänzung)
Danke dir für die Info, das werde ich testen sobald ich wieder in der Arbeit bin.
Melde mich dann.
 
Zurück
Oben