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

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: 60730
60730 20.07.2009 um 17:12:55 Uhr
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ß
Mitglied: bastla
bastla 20.07.2009, aktualisiert am 18.10.2012 um 18:38:49 Uhr
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
Mitglied: hemelinger
hemelinger 20.07.2009 um 22:44:49 Uhr
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!!!!