Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Verknüpfungen (*.LNK) durch Dateien ersetzen...

Frage Entwicklung

Mitglied: OneVoice73

OneVoice73 (Level 1) - Jetzt verbinden

07.03.2007, aktualisiert 16:24 Uhr, 8923 Aufrufe, 3 Kommentare

...oder die Erzeugung von realtiven Verknüpfungspfaden?

Guten Tag!

Nachdem ich fast das ganze Netz durchforstet habe und beim Googeln auf dieses Forum gestossen bin, in dem scheinbar professionellere Hilfe angeboten wird als in anderen Bereichen, versuche ich nun hier mein Glück.

Mein Problem:
In einem Hauptverzeichnis befinden sich Dateien.
In Unterverzeichnissen befinden sich Verknüpfungen auf die o.g. Dateien.
In der Eigenschaft der *.LNK-Datei wird das Ziel als absolute Pfadangabe angegeben.
Wenn ich nun das Hauptverzeichnis incl. aller Datein, Unterverzeichnisse und die darin enthaltenen Verknüpfungen auf CD brenne, funktionieren die Verknüpfungen nicht auf anderen Rechnern, in denen ich die CD einlese (da die gespeicherten Pfade nicht vorhanden sind).

Ursprünglich war ich auf der Suche nach einer Möglichkeit, die gespeicherten absoluten Pfadangaben (in der Zielangabe der *.LNK) durch relative Pfadangaben zu ersetzen. Das scheint leider nicht zu funktionieren
Zumindest habe ich im Netz nichts dergleichen finden können. Falls hier jemand dafür eine Lösung anbieten könnte, wäre ich wirklich sehr dankbar!

Da ich davon ausgehe, dass der eben genannte Lösungsansatz nicht funktionieren wird, habe ich mir alternativ noch folgende Verfahrensweise überlegt (und deshalb schreibe ich in diesem Forumsbereich):
Wie könnte man es bewerkstelligen, dass (mittels einer Routine) die Verknüpfungen durch die eigentlichen Dateien aus dem Hauptverzeichnis quasi überschrieben werden (ich benötige danach die Verknüpfungen ja eigentlich nicht mehr)?
Einzige Schwierigkeit dabei: Die Verknüpfungen heißen anders als die ursprünglichen Dateien und die überschreibenden Originaldateien müssen danach diesen Namen (der Verknüpfung) wieder erhalten.

Diese Geschichte manuell abzuarbeiten, käme einer Strafarbeit gleich. Anzahl Dateien plus deren Verknüpfungen: weit über 4000!

Für jede brauchbare Antwort wäre ich sehr dankbar!

Ach ja: Mein Betriebssystem ist WinXP.

Lieben Gruß!
Mitglied: bastla
07.03.2007 um 14:26 Uhr
Hallo OneVoice73 und willkommen im Forum!

Was relative Verknüpfungspfade anlangt - leider auch bei mir Fehlanzeige ...

Das folgende VBScript erwartet als einziges Argument die Angabe des Pfades, in dem die Verknüpfungen gespeichert sind und versucht dann, alle Verknüpfungen durch die verknüpften Dateien zu ersetzen.

Der neue Name der kopierten Datei setzt sich aus dem Dateinamen der Verknüpfung und dem Dateityp der verknüpften Datei zusammen.

01.
'ReplaceLinks.vbs 
02.
If WScript.Arguments.Count < 1 Then 
03.
	WScript.Echo "Kein Pfad übergeben!" 
04.
	WScript.Quit(1) 
05.
End If 
06.
 
07.
Pfad = WScript.Arguments(0) 
08.
Set fso = CreateObject("Scripting.FilesystemObject") 
09.
Set objShell= WScript.CreateObject("Wscript.Shell") 
10.
If Not fso.FolderExists(Pfad) Then 
11.
	WScript.Echo "Pfad ungültig!" 
12.
	WScript.Quit(1) 
13.
End If 
14.
If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\" 
15.
 
16.
For Each Datei In fso.GetFolder(Pfad).Files 
17.
	If LCase(Right(Datei.Name, 4)) = ".lnk" Then 
18.
		Set objShortcut = objShell.CreateShortcut(Datei.Path) 
19.
		Prog = objShortcut.TargetPath 
20.
		If InstrRev(Prog, ".") Then 
21.
			PName = Left(Datei.Name, Len(Datei.Name) - 4) & Mid(Prog, InstrRev(Prog, ".")) 
22.
		Else 
23.
			PName = Left(Datei.Name, Len(Datei.Name) - 4) 
24.
		End If 
25.
		If fso.FileExists(Prog) Then 
26.
			fso.CopyFile Prog, Pfad & PName 
27.
		End If 
28.
		Set objShortcut = Nothing 
29.
		fso.DeleteFile(Datei.Path) 
30.
	End If 
31.
Next 
32.
WScript.Echo "Fertig."
Das Script ist bisher nur oberflächlich getestet und weist auch nur ansatzweises Errorhandling (Parameterübergabe) auf ...

Grüße
bastla
Bitte warten ..
Mitglied: Nemia
07.03.2007 um 14:32 Uhr
Dazu fällt mir leider auch nichts ein.
Wozu brauchst du die Dateien? Zum Kopieren auf die anderen PC's? Wenn diese PC's noch "nackt" sind (also ohne gespeicherte Dateien), dann wäre ein Image (zB: mit Norton Ghost) am Einfachsten.
Bitte warten ..
Mitglied: OneVoice73
07.03.2007 um 16:24 Uhr
Das ist ja der totale Wahnsinn!
Diese Lösung reicht mir bereits voll und ganz!
Vielen Dank, bastla!!!

Eine kleine Änderung musste ich allerdings vornehmen:

'If InstrRev(Prog, ".") Then
'PName = Left(Datei.Name, Len(Datei.Name) - 4) & Mid(Prog, InstrRev(Prog, "."))
'Else
PName = Left(Datei.Name, Len(Datei.Name) - 4)
'End If

Sprich: Den IF-Block benötige ich gar nicht. Die Anweisung im ELSE reicht mir völlig (kleiner kosmetischer Fehler: "*.txt.txt").

Und die Schnelligkeit der Antwort wirft mich ja echt um!
Besten Dank nochmal! Sie haben mir unheimlich viel Arbeit erspart!

Lieben Gruß!

Thema = closed!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
gelöst For f - In vielen Dateien Komma durch Punkt ersetzen (2)

Frage von alleedx zum Thema Batch & Shell ...

Windows Server
gelöst AD: Dateien und Verknüpfungen verschwinden oder lassen sich nicht löschen (13)

Frage von McLion zum Thema Windows Server ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...