hemelinger
Goto Top

Batch Verknüpfung erstellen mit Parametern

Folgendes soll realisiert werden,
auf mehreren Rechner soll eine Programmverknüpfung in den Autostart von AllUsers erstellt werden.
Dafür habe ich unten stehendes "Batch" bereits gefunden und angepasst.
Funktioniert auch soweit, bis auf eine kleine aber elementar wichtige Sache.

Und zwar set "progexe=FriFax32.exe -a"
Dort soll der Parameter -a angehängt sein.
So bekomme ich als Ergebnis unter Ziel aber: "C:\Programme\Fritz!\FriFax32.exe -a"
Das -a müsste ja aber außerhalb der Anführungszeichen stehen.
Ist das mit meinem Ansatz realisierbar oder hab ich mich da verlaufen?


@echo off & setlocal

::Speicherort der Verknüpfung (unterhalb von Startmenue\Programme)
set "zielpfad=%allusersprofile%\Startm~1\Programme\autostart"
::Falls das Symbol auf den Desktop soll:
::set "zielpfad=%userprofile%\Desktop"

::Name der Verknüpfung (ohne ".lnk")
set "progtitel=FritzFax"
::Speicherort der Programmdatei (wird auch für "Ausführen in:" verwendet)
set "progdir=%programfiles%\Fritz!\"
set "progexe=FriFax32.exe -a"
::Kommentar
set "beschreibung=Faxfunktionalität für Metro"

::Bei Bedarf Speicherordner der Verknüpfung erstellen (siehe oben "zielpfad"):
if not exist "%zielpfad%" md "%zielpfad%"

::temporäres VBScript erzeugen ...
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%progdir%\%progexe%">>%temp%\MakeShortCut.vbs
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%progdir%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs

::... ausführen ...
cscript //nologo %temp%\MakeShortCut.vbs

::... und wieder löschen.
del %temp%\MakeShortCut.vbs

Content-Key: 120880

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

Printed on: April 24, 2024 at 10:04 o'clock

Mitglied: 60730
60730 Jul 20, 2009 at 15:12:55 (UTC)
Goto Top
Servus,

ganz ehrlich ich mach mir das viel einfacher...(wenn ich es nicht anders hinkriege)

in einem (versteckten) Ordner kopiere ich alle möglichen original .lnks (genau so, wie Sie ein müssen)

und dann via if not exist "%allusersprofile%\Startm~1\Programme\autostart\bla bla.lnk" copy "\\server\share$\bla bla.lnk" "%allusersprofile%\Startm~1\Programme\autostart\"

da blicke ich und jeder andere immer einfacher durch, als via temporärem .vbs.

Aber wenn du es unbedingt so realisierten willst:

set "progexe=FriFax32.exe"
echo objShortcut.TargetPath="%progdir%\%progexe%" & Chr(34)& -a & Chr(34)>>%temp%\MakeShortCut.vbs

sollte dann pi ~ daumen der Ansatz sein.

Gruß
Member: bastla
bastla Jul 20, 2009, updated at Oct 18, 2012 at 16:38:49 (UTC)
Goto Top
Hallo hemelinger!

Schau mal in diesen Beitrag rein ...

... bzw versuche es gleich mit einer zusätzlichen Zeile der Art:
echo objShortcut.Arguments = "-a" >>%temp%\MakeShortCut.vbs
Grüße
bastla
Member: hemelinger
hemelinger Jul 20, 2009 at 20:44:49 (UTC)
Goto Top
Danke euche Beiden!

Die Zeile von Bastla ist zum Zuge gekommen.
Genau so eine Zeile hatte ich mir vorgestellt, nur wär ich da mit meinen VBS Kentnissen nie drauf gekommen.
Zumindest nicht in diesem Leben.

Also mal wieder Danke für die prompte Hilfe hier!!!!