kartoffelpelle
Goto Top

Batch: Symbolische Verknüpfung zu Datei via Mklink erstellen in Windows 7 (Syntaxproblem)

Guten Tag,

ich versuche, während einer Batchgeskripteten Installation, eine "Bitte warten, Installation läuft"-Meldung als Vollbild anzuzeigen. Da ich leider auf keine zusätzlichen Helferlein zugreifen kann, habe ich mich entschieden, eine entsprechende Seite mit dem Internet-Explorer im Kiosk-Modus anzeigen zu lassen. Dazu benötige ich eine Verknüpfung, die während der Installation aus dem Arbeitsverzeichnis aufgerufen wird.

START %Arberitsverzeichnis%StartInst.lnk

Das funktioniert soweit auch wunderbar, wenn ich die Verknüpfung (z.B. mit Ziel: "C:\Program Files\internet explorer\iexplore.exe" -k D:\Temp\start.html) von Hand anlege.

Nun zu meinem Problem:
Leider muss die Verknüpfung während der Installation dynamisch (siehe %Arbeitsverzeichnis%) erzeugt werden, da ich nicht wissen kann, aus welchem Verzeichnis der Technische Kundendienst die Installation starten wird. Ich schaffe es leider nicht, die doppelten Anführungszeichen so zu escapen, dass in der Verknüpfung folgendes Ziel aufgelöst wird:
mklink StartInst "C:\Program Files\internet explorer\iexplore.exe" -k %Arberitsverzeichnis%\start.html

Folgendes habe ich versucht:

set Arbeitsverzeichnis=%~dp0
mklink StartInst "\"C:\Program Files\internet explorer\iexplore.exe\" -k %Arberitsverzeichnis%\start.html"  

Die Fehlermeldung lautet:
The syntax of the command is incorrect.

Ich habe auch schon mit ^ (Zirkumflex-Zeichen) probiert, die Identifier als Character interprätieren zu lassen. Hat jemand eine Idee? Ein anderer Ansatz ist natürlich auch willkommen, müsste aber mit Boardmitteln realisiert werden.

Vielen Dank und
viele Grüße
Kartoffelpelle

P.S.: Die Installation läuft automatisch und führt mehrere Reboots aus, nach einem Reboot wird die Verknüpfung durch den Autostart aufgerufen, während die Installation im Hintergrund im Systemkontext abläuft. Da der Systemkontext nicht mit der Benutzeroberfläche interargieren darf, kann dieser den Kiosk-Modus nicht starten.

Content-Key: 509517

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

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: Friemler
Lösung Friemler 31.10.2019 um 21:45:19 Uhr
Goto Top
Hallo @Kartoffelpelle,

Du machst da so einiges falsch, das kann nicht funktionieren.

Zunächst mal ist das mklink-Kommando nicht dazu da, Desktopverknüpfungen (also *.lnk-Dateien) zu erzeugen, sondern damit können sog. Symlinks, Hardlinks und Junctions auf Dateisystemebene angelegt werden (Google liefert bestimmt Ergebnisse zu den Begriffen).

Der richtige Weg wäre, ein VBScript zu schreiben, das Desktopverknüpfungen anlegen kann. Dazu kann mit CreateObject("WScript.Shell") eine Instanz des Windows Script Host Shell-Objekts erstellt und mit dessen Methode CreateShortcut die Verknüpfung erstellt werden.

Dein zweiter Fehler ist das Escapen von Anführungszeichen in der Kommandozeile - es ist schlicht überflüssig bei Befehlen, die direkt in ein Konsolenfenster eingetippt oder aus einem Batchscript heraus ausgeführt werden. Die von Dir erwähnte Fehlermeldung wird angezeigt, weil Du den mklink-Befehl falsch einsetzt. Mit dem Ausführen von mklink /? hättest Du das auch selbst herausfinden können.

Grüße
Friemler
Mitglied: Kartoffelpelle
Kartoffelpelle 17.01.2020 um 18:47:53 Uhr
Goto Top
Hallo Friemler,

danke für die Erleuchtung. Ich habe mir natürlich "mklink /?" angeschaut, bin aber fälschlicher weise davon ausgegangen, das eine symbolische Dateiverknüpfung genau das ist, was ich suche.

VB ist leider verboten, daher habe ich nun folgende Notlösung:
Ich kopiere das html-File aus dem Arbeitsverzeichnis in einen temporären definierten Ordner auf der Festplatte. Dieser Ordner ist entsprechend in der Verknüpfung eingetragen. Am Ende der Installation wird die Datei wieder gelöscht.

Ist leider keine schöne Lösung...

Viele Grüße
Kartoffelpelle