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.
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:
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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 509517
Url: https://administrator.de/contentid/509517
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo @Kartoffelpelle,
Du machst da so einiges falsch, das kann nicht funktionieren.
Zunächst mal ist das
Der richtige Weg wäre, ein VBScript zu schreiben, das Desktopverknüpfungen anlegen kann. Dazu kann mit
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
Grüße
Friemler
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