132078
Goto Top

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ß

Content-ID: 326296

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

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

131381
131381 13.01.2017 um 11:29:30 Uhr
Goto Top
132078
132078 13.01.2017 um 11:39:40 Uhr
Goto Top
sorry aber ich bekomme gerade das nicht gelöst eine Funktion für Subfolder genau in das o.a. Script zu implementieren. Mir fehlen da leider die Grundlagen für das VB Scripting. Die anderen Beiträge beschreiben die Funktion immer in einem anderen Zusammenhang.
131381
131381 13.01.2017 aktualisiert um 15:36:46 Uhr
Goto Top
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 face-sad
132078
132078 13.01.2017 um 12:26:32 Uhr
Goto Top
Das habe ich auch gelesen, allerdings nicht verstanden an welcher Stelle in dem o.g. Script die Funktion beginnen und enden muss. Also nochmal sorry, ich habe keinerlei Erfahrung mit VBScript und versuche seit mittlerweile 3 Stunden das Script anzupassen aber leider erfolglos. face-sad Ich hätte das Script heute Mittag dringend für 800 Arbeitsplätze gebraucht.
131381
131381 13.01.2017 aktualisiert um 15:37:10 Uhr
Goto Top
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 ...
132078
132078 13.01.2017 um 13:05:53 Uhr
Goto Top
das einzige was ich arm finde ist der Verlust des Anstands und der Moral in unserer Gesellschaft! Sie sind ein hervorragendes Beispiel für die Überheblichkeit und Arroganz der "neuen Generation"! Ich benötige das Script nicht mehr da ich mir unterdessen eine andere Lösung generiert habe. Also Danke für NICHTS!

Und zu Ihrer allgemeinen Belustigung: Ich verstehe das Script immer noch nicht.

schönes Wochenende und auf nimmer Wiedersehen...
131381
131381 13.01.2017 aktualisiert um 15:38:43 Uhr
Goto Top
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" ...
emeriks
emeriks 13.01.2017 um 17:04:16 Uhr
Goto Top
@131381
Da fällt einem nichts mehr ein ...