sarekhl
Goto Top

Anlegen von Verknüpfungen per Script

Hallo zusammen,

ich möchte Verknüpfungen per Batch erstellen. Die Quellangaben habe ich in einer Excel-Tabelle, kann sie aber auch in eine Textdatei exportieren. Relevant sind drei Felder, nennen wir sie
Gruppe
Ziel
Klartextname

Nun nehmen wir an, ich habe einen Ordner C:\Links in den die Verknüpfungen geschrieben werden sollen, dann gilt: Es soll eine Verknüpfung mit dem Namen Klartextname angelegt werden, die zu Ziel führt. Gespeichert wird diese Verknüpfung in c:\Links\Gruppe\

Wie kann das gehen? Es darf auch gerne VB6-Code sein ...


Danke,
André

Content-Key: 121831

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

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: WiSch
WiSch 02.08.2009 um 12:24:08 Uhr
Goto Top
Hallo.

Vielleicht helfen dir das MS-Tool Shortcut? Infos Download
Mitglied: 77559
77559 03.08.2009 um 14:53:11 Uhr
Goto Top
Zitat von @WiSch:
Vielleicht helfen dir das MS-Tool Shortcut?
Infos
Download

Infos bezieht sich auf ein anderes Programm mit abweichenden Parametern.

@andré
Im Titel schreibst du Script im Text Batch. Das ist nicht unbedingt das Gleiche face-wink

Für dich wäre ein Vbscript welches die Daten direkt aus der Excel-Datei liest die eleganteste Lösung.

Mit der Methode CreateShortCut kannst du zwar auch Verknüpfungen erzeugen, aber ich bin nicht sicher ob du URL Textdateien meinst. bei diesem nur teilweise getesteten Script sind beide Optionen enthalten
'  
Dim xl_Datei, xl_Cells, MyLnk, MyBase, UrlFile, txf
xl_Datei = "C:\Test\Favoriten.xls"  
xl_Cells = "[Tabelle1$A2:C3]"  
MyBase = "C:\Test\"  

Dim oWSH :Set oWSH  = WScript.CreateObject("WScript.Shell")  
Dim oFSys:Set oFSys = CreateObject("Scripting.FileSystemObject")  
Dim oConn:Set oConn = CreateObject("ADODB.Connection")  
Dim oRecS:Set oRecS = CreateObject("ADODB.Recordset")  

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0" & _  
  ";Data Source=" & xl_Datei & _  
  ";Extended Properties=""Excel 8.0;HDR=No;"";"  
oRecS.Open "Select * from " & xl_Cells, oConn, 3, 3, 1  

' Spalte A Field 0 = Gruppe  
' Spalte B Field 1 = Ziel  
' Spalte C Field 2 = Klartextname  

Do Until oRecS.EOF
  CreateUrl oRecS.Fields(0).Value, oRecS.Fields(1).Value, oRecS.Fields(2).Value
' CreateLnk oRecS.Fields(0).Value, oRecS.Fields(1).Value, oRecS.Fields(2).Value  
  oRecS.MoveNext
Loop

oRecS.Close
oConn.Close

Sub CreateUrl(Gruppe, Ziel, Klartextname)
  wscript.echo "URL:" & Gruppe & vbTab & Ziel & vbTab & Klartextname  
  Set txf = oFSys.CreateTextFile(MyBase & Gruppe & "\" & Klartextname & ".url", True)  
  txf.WriteLine "[DEFAULT]"  
  txf.WriteLine "BASEURL=" & Ziel  
  txf.WriteLine "[InternetShortcut]"   
  txf.WriteLine "URL=" & Ziel  
' txf.WriteLine "IconFile="  
' txf.WriteLine "IconIndex=1"  
  txf.close
End Sub

Sub CreateLnk(Gruppe, Ziel, Klartextname)
  wscript.echo "LNK:" & Gruppe & vbTab & Ziel & vbTab & Klartextname  
  Set MyLnk = oWSH.CreateShortcut( _
    MyBase & Gruppe &" \" & Klartextname & ".lnk")  
  with MyLnk 
    .TargetPath = Ziel
    .Description = KlartextName
'   .WindowStyle = 4  
'   .Hotkey =   
'   .IconLocation =  
'   .WorkingDirectory =  
'   .Arguments =  
    .Save
  End with
  Set MyLnk = Nothing
End Sub

Gruß
LotPings
Mitglied: SarekHL
SarekHL 03.08.2009 um 15:02:46 Uhr
Goto Top
Infos bezieht sich auf ein anderes Programm mit
abweichenden Parametern.

Habe ich auch festgestellt, aber bei dem Programm war eine README mit den richtigen Parametern bei.


Für dich wäre ein Vbscript welches die Daten direkt aus
der Excel-Datei liest die eleganteste Lösung.
...

Danke für die Mühe, aber ich habe inzwischen eine Lösung mit dem Shortcut-Programm gebastelt. Mit VB-Script kenne ich mich nicht so aus, ich bastle mit in der Regel Programme mit VB6. Habe ich in diesem Fall auch getan, ein kleines VB-Programm, welches die Infos aus einer CSV-Datei ausliest und jedesmal die Daten an das Shortcut-Programm übergibt. Hat super funktioniert.

Sicher ist Deine Lösung eleganter, aber da ich das Programm nur einmalig gebraucht habe, um 600 Shortcuts anzulegen, kommt es auf Eleganz nicht an.

Trotzdem Danke (natürlich auch an WiSch) ...