
91183
10.06.2010
Verknüpfung mit Batch-Datei erstellen - Ziellaufwerk automatisch erkennen.
Hallo zusammen!
Ich habe vor kurzem meine Portablen Apps auf meinem USB-Stick aktualisiert.
Hierbei sind einige Programme hinzugekommen, sodass der ganze Spaß doch
recht unübersichtlich geworden ist. Daraufhin habe ich mir eine Batch-Datei
mit einem Auswahlmenü (Menü.bat) geschrieben, welche mir das Suchen bzw. hunderte
Verknüpfungen auf dem Desktop erspart (diese funktioniert auch einwandfrei).
Da ich die Apps nicht nur auf dem USB-Stick sondern auch auf einer CD brauche,
habe ich für die CD kurzerhand noch eine Autorun.inf geschrieben, die die Batch-Datei
gleich beim einlegen startet und zusätzlich für spätere Aufgaben noch eine Verknüpfung
zur der Datei „Menü.bat“ herstellt.
Habe dann versucht über Google Infos zu erhalten, wie man so etwas aufbaut und bin auch
beim folgenden Thread recht schnell fündig geworden.
Verknüpfungen erstellen
Die Idee mit dem temporären VBScript fand ich sehr gut. Allerdings habe ich noch ein paar
Probleme, da ich mich noch nicht allzu sehr mit VBscripten beschäftigt habe.
- Die Batchdatei soll vor dem erstellen überprüfen, ob bereits eine gleichnamige
Verknüpfung auf dem Desktop vorhanden ist und fragen bevor sie diese ersetzt.
Bin mir dabei nicht sicher, ob der Befehl in das temp. Script selbst gehört oder davor.
- Das temp. Script müsste (zumindest im Falle der CD) auf der Harddisk erstellt
werden. Wobei ich glaube, dass das auch in dem Beispiel schon richtig sein müsste.
- Der Verknüpfung müsste ein bestimmtes Icon (welches auf der CD ist) beim Erstellen
zugewiesen werden.
- Die Batchdatei müsste das Ziel der zu erstellenden Verknüpfung selber erkennen.
Soll heißen, wenn das CD- / DVD-Laufwerk den Buchstaben E hat, muss die Verknüpfung
das Ziel „E:\Menü.bat“ haben. Wenn das Laufwerk den Buchstaben F trägt ………..
Ist glaube ich klar, was ich meine.
Ich denke mal das letzte Problem dürfte wohl das schwierigste sein.
Hoffe Ihr könnt mir da weiterhelfen.
Gruß
Xeno
Ich habe vor kurzem meine Portablen Apps auf meinem USB-Stick aktualisiert.
Hierbei sind einige Programme hinzugekommen, sodass der ganze Spaß doch
recht unübersichtlich geworden ist. Daraufhin habe ich mir eine Batch-Datei
mit einem Auswahlmenü (Menü.bat) geschrieben, welche mir das Suchen bzw. hunderte
Verknüpfungen auf dem Desktop erspart (diese funktioniert auch einwandfrei).
Da ich die Apps nicht nur auf dem USB-Stick sondern auch auf einer CD brauche,
habe ich für die CD kurzerhand noch eine Autorun.inf geschrieben, die die Batch-Datei
gleich beim einlegen startet und zusätzlich für spätere Aufgaben noch eine Verknüpfung
zur der Datei „Menü.bat“ herstellt.
Habe dann versucht über Google Infos zu erhalten, wie man so etwas aufbaut und bin auch
beim folgenden Thread recht schnell fündig geworden.
Verknüpfungen erstellen
Die Idee mit dem temporären VBScript fand ich sehr gut. Allerdings habe ich noch ein paar
Probleme, da ich mich noch nicht allzu sehr mit VBscripten beschäftigt habe.
- Die Batchdatei soll vor dem erstellen überprüfen, ob bereits eine gleichnamige
Verknüpfung auf dem Desktop vorhanden ist und fragen bevor sie diese ersetzt.
Bin mir dabei nicht sicher, ob der Befehl in das temp. Script selbst gehört oder davor.
- Das temp. Script müsste (zumindest im Falle der CD) auf der Harddisk erstellt
werden. Wobei ich glaube, dass das auch in dem Beispiel schon richtig sein müsste.
- Der Verknüpfung müsste ein bestimmtes Icon (welches auf der CD ist) beim Erstellen
zugewiesen werden.
- Die Batchdatei müsste das Ziel der zu erstellenden Verknüpfung selber erkennen.
Soll heißen, wenn das CD- / DVD-Laufwerk den Buchstaben E hat, muss die Verknüpfung
das Ziel „E:\Menü.bat“ haben. Wenn das Laufwerk den Buchstaben F trägt ………..
Ist glaube ich klar, was ich meine.
Ich denke mal das letzte Problem dürfte wohl das schwierigste sein.
Hoffe Ihr könnt mir da weiterhelfen.
Gruß
Xeno
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 144613
Url: https://administrator.de/forum/verknuepfung-mit-batch-datei-erstellen-ziellaufwerk-automatisch-erkennen-144613.html
Ausgedruckt am: 27.04.2025 um 04:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo Xeno-- und willkommen im Forum!
Etwas für Dich zum Testen (ich hab's nämlich nicht gemacht
):
Bitte beachten: Es ist in einem Batch einfacher ohne Umlaute - deshalb habe ich oben auch "Menue" in den Dateinamen verwendet ...
Außerdem habe ich vorausgesetzt, dass die "Menue"-Dateien, wie angekündigt, im Root-Verzeichnis liegen (also zB "E:\Menue.bat").
Grüße
bastla
P.S.: Heutzutage wirst Du vermutlich für die Ausführung der "autorun.inf" auf das Prinzip "Hoffnung" setzen müssen ...
Etwas für Dich zum Testen (ich hab's nämlich nicht gemacht
@echo off & setlocal
::Falls das Symbol auf den Desktop soll:
set "zielpfad=%userprofile%\Desktop"
::Name der Verknüpfung (ohne ".lnk")
set "progtitel=Menue"
::Icon-Datei
set "icon=Menue.ico"
::Speicherort der Programmdatei (wird auch für "Ausführen in:" verwendet)
::ist Rootverzeichnis des Laufwerkes, von dem der Batch gestartet wurde
set "progdir=%~d0"
set "progexe=Menue.bat"
::Kommentar
set "beschreibung=Erklaerung eigentlich unnoetig ..."
::Bei Bedarf Speicherordner der Verknüpfung erstellen (siehe oben "zielpfad")
::(eigentlich nicht nötig, sollte aber auch nicht schaden):
md "%zielpfad%" 2>nul
if not exist "%zielpfad%\%progtitel%.lnk" goto :Neu
set /p Eingabe=Es gibt bereits eine Verknuepfung "%progtitel%" auf dem Desktop - ersetzen (J/N)?
if /i "%Eingabe:~,1%" neq "j" (echo Es wird keine Verknuepfung erstellt! & pause & goto :eof)
:Neu
::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.IconLocation="%progdir%\%icon%,0">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
::... ausführen ...
cscript //nologo %temp%\MakeShortCut.vbs
::... und wieder löschen.
del %temp%\MakeShortCut.vbs
Außerdem habe ich vorausgesetzt, dass die "Menue"-Dateien, wie angekündigt, im Root-Verzeichnis liegen (also zB "E:\Menue.bat").
Grüße
bastla
P.S.: Heutzutage wirst Du vermutlich für die Ausführung der "autorun.inf" auf das Prinzip "Hoffnung" setzen müssen ...

Moin,
probiers doch aus - die Zeile kannst du doch sowohl als auch - schadet ja nicht, denn "nach" dem installieren kann man auch nachschauen, ob die Datei erzeugt wude
.
Rest - (eigentlich auch diese Schnippsel) findest du auch hier.
Gruß
Edit el Maestro ist ja viel schneller und wie üblich ausführlicher gewesen.../edit
Zitat von @91183:
Hallo zusammen!
- Die Batchdatei soll vor dem erstellen überprüfen, ob bereits eine gleichnamige
Verknüpfung auf dem Desktop vorhanden ist und fragen bevor sie diese ersetzt.
Bin mir dabei nicht sicher, ob der Befehl in das temp. Script selbst gehört oder davor.
Hallo zusammen!
- Die Batchdatei soll vor dem erstellen überprüfen, ob bereits eine gleichnamige
Verknüpfung auf dem Desktop vorhanden ist und fragen bevor sie diese ersetzt.
Bin mir dabei nicht sicher, ob der Befehl in das temp. Script selbst gehört oder davor.
probiers doch aus - die Zeile kannst du doch sowohl als auch - schadet ja nicht, denn "nach" dem installieren kann man auch nachschauen, ob die Datei erzeugt wude
.
if exist %userprofile%\Desktop\meine.lnk" echo ist schon da
- Die Batchdatei müsste das Ziel der zu erstellenden Verknüpfung selber erkennen.
Soll heißen, wenn das CD- / DVD-Laufwerk den Buchstaben E hat, muss die Verknüpfung
das Ziel „E:\Menü.bat“ haben. Wenn das Laufwerk den Buchstaben F trägt ………..
Ist glaube ich klar, was ich meine.
Soll heißen, wenn das CD- / DVD-Laufwerk den Buchstaben E hat, muss die Verknüpfung
das Ziel „E:\Menü.bat“ haben. Wenn das Laufwerk den Buchstaben F trägt ………..
Ist glaube ich klar, was ich meine.
echo dein aktuelles Laufwerk ist %cd%
echo %cd% |find "%systemdrive%" && echo die batch läuft auf der Festplatte
pause
Rest - (eigentlich auch diese Schnippsel) findest du auch hier.
Gruß
Edit el Maestro ist ja viel schneller und wie üblich ausführlicher gewesen.../edit
@Timo
Auch wenn's hier auf das annähernd gleiche Ergebnis hinauslaufen sollte -
zur Verfügung.
Grüße
bastla
Auch wenn's hier auf das annähernd gleiche Ergebnis hinauslaufen sollte -
%cd%
bezieht sich auf den aktuellen Pfad; um den Speicherort des Batches zu finden, steht %0 mit den Möglichkeiten%~d0 = Laufwerk
%~dp0 = Laufwerk mit Pfad und abschließendem "\"
%~f0 = Vollständiger Pfad inkl. Dateiname und Erweiterung
Grüße
bastla

@bastla - schon klar, aber irgendwann hatt ich mal ein anotobak System und das konnte nur %cd%.
IMHo WInblows 9x oder sowas, das kannte den ganze Tüddelkram, der hinter...
steht nicht - ich mein es war 9x - aber bei dem Wetter arbeitet das feuchte Brötchen zwischen meinen Ohren auch nur auf Lowlevel
Gruß
nö - zur Feier des tages und weil du auch immer mehrere Grüße schickst..
Grüzi zurück
IMHo WInblows 9x oder sowas, das kannte den ganze Tüddelkram, der hinter...
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
Sie können jetzt folgende Syntax verwenden:
steht nicht - ich mein es war 9x - aber bei dem Wetter arbeitet das feuchte Brötchen zwischen meinen Ohren auch nur auf Lowlevel
Gruß
nö - zur Feier des tages und weil du auch immer mehrere Grüße schickst..
Grüzi zurück
[OT]
@Timo
Brötchen bleiben bei mir nicht lange genug zwischen den Ohren, um dort feucht zu werden ...
Mit 9x liegst Du jedenfalls richtig (und danke, dass Du die darauf folgende Katastrophe nicht erwähnt hast
).
Noch ein paar Grüße mehr
bastla
[/OT]
@Timo
Brötchen bleiben bei mir nicht lange genug zwischen den Ohren, um dort feucht zu werden ...
Mit 9x liegst Du jedenfalls richtig (und danke, dass Du die darauf folgende Katastrophe nicht erwähnt hast
Noch ein paar Grüße mehr
bastla
[/OT]
Hallo Xeno--!
Beim Thema "Autostart" sehe ich eher schwarz ...
Das Icon wird in den Zeilen 9 bzw 31 festgelegt - um "shell32.dll" zu verwenden könntest Du die Zeile 31 auf
ändern - die 0 musst Du selbst gegen die Nummer des gewünschten Icons austauschen.
Um ein eigenes Icon vorweg zu kopieren, könntest Du zwischen Zeile 24 und 25 einfügen:
und dann die folgende Zeile 31 verwenden:
Das VBScript ist eigentlich immer nur für das eigentlich Erstellen der Verknüpfung auf Basis der festgelegten Werte / Variablen zuständig ...
Grüße
bastla
Beim Thema "Autostart" sehe ich eher schwarz ...
Das Icon wird in den Zeilen 9 bzw 31 festgelegt - um "shell32.dll" zu verwenden könntest Du die Zeile 31 auf
echo objShortcut.IconLocation="%SystemRoot%\System32\shell32.dll,0">>%temp%\MakeShortCut.vbs
Um ein eigenes Icon vorweg zu kopieren, könntest Du zwischen Zeile 24 und 25 einfügen:
copy "%progdir%\%icon%" "%userprofile%"
echo objShortcut.IconLocation="%userprofile%\%icon%,0">>%temp%\MakeShortCut.vbs
Grüße
bastla