132078
13.01.2017
3049
8
0
VBScript erweitern für Subfolder
Hallo liebe Gemeinde,
Ich habe mich bisher noch nie mit VBScript beschäftigt, daher verzeiht mir bitte meine wahrscheinlich relativ grundlegende Frage.
Im Netz habe ich folgendes Script zum Ändern von Verknüpfungspfaden gefunden:
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(z, "D:\Alter\Pfad", "D:\Neuer\Pfad")
sl.WorkingDirectory = y
sl.Save
End If
Next
WScript.Echo "Änderungen ausgeführt!"
------------------------------------------------------
Quelle: http://www.xpdiskussion.com/showthread.php?t=28718
das Script funktioniert soweit gut. Ich möchte es gerne so erweitern, das es auch Subfolder nach lnk Dateien durchsucht und diese anpasst. Kann mir jemand weiterhelfen?
Danke und Gruß
Ich habe mich bisher noch nie mit VBScript beschäftigt, daher verzeiht mir bitte meine wahrscheinlich relativ grundlegende Frage.
Im Netz habe ich folgendes Script zum Ändern von Verknüpfungspfaden gefunden:
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(z, "D:\Alter\Pfad", "D:\Neuer\Pfad")
sl.WorkingDirectory = y
sl.Save
End If
Next
WScript.Echo "Änderungen ausgeführt!"
------------------------------------------------------
Quelle: http://www.xpdiskussion.com/showthread.php?t=28718
das Script funktioniert soweit gut. Ich möchte es gerne so erweitern, das es auch Subfolder nach lnk Dateien durchsucht und diese anpasst. Kann mir jemand weiterhelfen?
Danke und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 326296
Url: https://administrator.de/contentid/326296
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Sorry aber der Thread macht genau das!
Die Funktion
Function parseFolders(strFldr,boolRecursion)
macht genau das ... Ordner rekursiv durchsuchen und Links abändern!
Minimal lesen sollte man Threads schon
Die Funktion
Function parseFolders(strFldr,boolRecursion)
macht genau das ... Ordner rekursiv durchsuchen und Links abändern!
Minimal lesen sollte man Threads schon
set objFS = CreateObject("Scripting.FilesystemObject")
Set objShell = CreateObject("Wscript.Shell")
parseFolders objFS.GetFolder(WScript.Arguments(0)),True
Function parseFolders(strFldr,boolRecursion)
for each myFile in strFldr.Files
If LCase(objFS.GetExtensionName(myFile.Name)) = "lnk" Then
Set link = objShell.CreateShortcut(myFile.Path)
link.TargetPath = Replace(link.TargetPath,"D:\Alter\Pfad","D:\Neuer\Pfad",1,-1,1)
link.WorkingDirectory = Replace(link.WorkingDirectory,"D:\Alter\Pfad","D:\Neuer\Pfad",1,-1,1)
link.Save
End If
Next
If boolRecursion Then
For Each subFolder in strFldr.SubFolders
parseFolders subFolder, True
Next
End If
End Function
Ich hätte das Script heute Mittag dringend für 800 Arbeitsplätze gebraucht.
No comment ...Lösung generiert
War klar.der "neuen Generation"!
Die Generation die sich alles nur aus dem Web kopiert ohne mal eine Funktion in der Doku nachzuschlagen, ganz genau... Ich verstehe das Script immer noch nicht.
Wenn man sich noch nicht mal die Mühe macht es zu verstehen und die einzelnen Funktionen in der Dokumentation nachzuschlagen und hier nur fertige Skripte abholen will kann einem das nur leid tun.schönes Wochenende und auf nimmer Wiedersehen...
Ebenso, und Danke, ein Gewinn für dieses Forum! Typischer "Freitag" ...