Frage von BlaueGiraffe, 25

Mit batch verknüpfung erstellen?

Wie kann von einer datei eine verknüpfung über batch erstellen die dann auf dem desktop liegt? Also mit welchem befehl würde dass gehen

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von MarkusGenervt, 9

Mit Batch alleine wird das nicht funktionieren.

Wie spriday das schon etwas umständlich beschrieben hat, ist das zwar auch eine Lösung, aber es geht deutlich einfacher, bzw. direkter mit VBScript.

Option Explicit
' *** MakeDesktopShortcut.vbs ***
Dim fso, wsh, sc, tn, sn
set fso = CreateObject("Scripting.FileSystemObject")

set wsh = CreateObject("WScript.Shell")

tn = Arguments.Unnamed(0)
if not fso.FileExists(tn) then
Err.Raise 53 ' File Not Found
Quit
end if

tn = fso.GetAbsolutePathName(tn)

sn = fso.BuildPath(
wsh.SpecialFolders("Desktop"), fso.GetBaseName(tn) & ".lnk")

set sc = wsh.CreateShortcut(sn)

With sc
.TargetPath = tn

.WorkingDirectory = fso.GetParentFolderName(tn)
.Save
End With



Das speicherst Du dann einfach unter dem angegebenen oder sonst einem Namen ab und dann kannst Du einfach die entsprechende Datei als Parameter angeben und es wird eine ordentliche Windows-Verknüpfung davon auf dem Desktop erstellt.

Allerdings solltest Du darauf achten, dass dieses Script irgendwo im PATH abgespeichert wird, bzw. dass Du den PATH entsprechend erweiterst. Um es unkompliziert zu machen: speichere es einfach unter "%windir%".

Aufruf:

MakeDesktopShortcut.vbs "Meine Datei.txt"

Wenn du eine Internet-Security laufen hast, solltest Du u.U. folgenden Befehl wählen, da wscript.exe maskiert sein kann:

"%SystemRoot%\system32\wscript.exe" //NOLOGO MakeDesktopShortcut.vbs "Meine Datei.txt"

Diesen Befehl kannst Du aber dann auch in eine Batch packen, damit Du das nicht immer wieder neu eingeben musst:

@"%SystemRoot%\system32\wscript.exe" //NOLOGO MakeDesktopShortcut.vbs %*

Damit kannst Du dann via Batch das VBScript aufrufen.


Antwort
von spriday, 16

Man kann das entweder mit Batch über die PowerShell machen:

powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%\Start Menu\Programs\Startup\%~n0.lnk');$s.TargetPath='%~f0';$s.Save()"

oder über einen Batch-internen Befehl:

mklink "%userprofile%\Start Menu\Programs\Startup\%~nx0" "%~f0"

Ich würde dich trotzdem noch darauf hinweisen, dass man sowas innerhalb einer Minute im Internet findet.

Kommentar von MarkusGenervt ,

kleine Korrektur:

MKLINK ist kein Batch-interner Befehl, sonder völlig eigenständig und kann von jeder Befehlszeile aus aufgerufen werden.

Außerdem erstellt MKLINK SymLinks, HardLinks und Junction Points, aber keine Windows-Verknüpfungen (manchmal auch als SoftLinks bezeichnet). Das ist etwas völlig Anderes.

Kommentar von spriday ,

Danke für die Korrektur! :)

Antwort
von Cynob, 9

batch ist ein Krampf sondersgleichen wenn man Linux gewöhnt ist.

Kommt drauf an was du mit der Datei anstellen möchtest. Öffnen innem Texteditor oder was genau?

Edith sagt: ups Frage falsch gelesen ....

Kommentar von BlaueGiraffe ,

Ich will einfach eine verknüpfung erstellen mit einer batch datei auf dem desktop ^^ und ich schreibe es im notepad

Kommentar von Cynob ,

Jaa soll die batch datei der link sein oder soll die batch den link erstellen?

Kommentar von MarkusGenervt ,

batch ist ein Krampf sondersgleichen wenn man Linux gewöhnt ist.

Das ist es auch so schon. Aber wenn man dann mal zu Linux wechselt, fällt es einem erst so richtig auf … x-)

Keine passende Antwort gefunden?

Fragen Sie die Community