pcwDocLnkCheck.js
Posted 01/27/2009 - 16:41 by admin
/* Ein paar allgemeine Variablen */ var Fs = new ActiveXObject("Scripting.FileSystemObject"); var WshShell = WScript.CreateObject("WScript.Shell"); var recentdir = WshShell.SpecialFolders("Recent"); var f, fnum; var i = 0; var errlog = ""; /* Der Recent-Folder wird ermittelt:*/ f = Fs.GetFolder(recentdir); /* Die Dateien im Recent-Folder werden eingelesen */ fnum = new Enumerator(f.Files); /* Wenn die Datei-Erweiterung "lnk" ist, soll sich die Funktion fCheckLink um die Überprüfung kümmern */ for (;!fnum.atEnd(); fnum.moveNext()) { if (Fs.GetExtensionName(fnum.item()).toLowerCase() == 'lnk') { fCheckLink(fnum.item()); } } if (i== 0 && errlog == "") { WshShell.Popup("Alle Verknüpfungen in \"" + recentdir+ "\" sind in Ordnung.",0,"PC-WELT Script", 64); } else WshShell.Popup(i + " veraltete Dokument-Links in \""+ recentdir + "\" gelöscht.\n" + errlog +"",0,"PC-WELT Script", 64); /* Ende des linearen Scriptteils. Die Funktion fCheckLink(pfad) schaut sich den Shortcut "pfad" genauer an. Da es sein kann, dass auf NT/2000/XP Linkdateien mit Zugriffbeschränkung auf NTFS Paritionen vorliegen, muss deren mögliches Auftreten von einer Error- Exception aufgefangen werden:*/ function fCheckLink(pfad){ var oShellLink try { oShellLink = WshShell.CreateShortcut(pfad);} catch(err1){ errlog = errlog + pfad +"\nübersprungen wegen fehlender Zugriffsrechte.\n"; } if (!Fs.FileExists(oShellLink.TargetPath)) { if (!Fs.FolderExists(oShellLink.TargetPath)) { try { Fs.DeleteFile(pfad);i++} catch(err2){ errlog = errlog + pfad +"\nübersprungen wegen fehlender Zugriffsrechte.\n"; } } } }
