wie mit batch verknüpfung erzeugen?

3 Antworten

Ich denke Du meinst eine normale Desktopverknüpfung:

@echo off
chcp 65001 >nul


  rem  falls nötig javascript  erzeugen 
if not exist "%temp%\CreateShortCut.js" echo args=WScript.Arguments;if (args.length^>5){ShCt=new ActiveXObject('WScript.Shell').CreateShortcut(args(0));ShCt.TargetPath=args(1);ShCt.Arguments=args(2).replace(/'/g,String.fromCharCode(34));ShCt.IconLocation=args(3);ShCt.WorkingDirectory=args(4);ShCt.Description=args(5);ShCt.Save();} >"%temp%\CreateShortCut.js"
  rem erzeuge Makro
set @__CreateShortCut=cscript /nologo "%temp%\CreateShortCut.js"


  rem Parameter: "Shortcut-Datei" "ZielProgramm für den Shortcut" "Argumente  !!!innere "Gänsefüßchen nicht möglich"!!!"  "Icondatei [optional: ,iconindex]" "ArbeitsVerzeichnis" "Anmerkungen"
  rem Argumente, welche normalerweise  in "Gänsefüßchen" übergeben würden, stattdessen in 'SingleQuotes' schreiben! zB. "Argument1 'Agument in normalerweise Gänsefüßchen' usw."
  rem Icon-Indexe  für Shell32.dll: https://help4windows.com/windows_8_shell32_dll.shtml
%@__CreateShortCut% "%userprofile%\Desktop\Hier.lnk" "shutdown.exe" "/h"  "%SystemRoot%\System32\shell32.dll,130" "" "Lass Dich überraschen"


  rem  noch ein test :
  rem erstelle andere Batch
echo @echo Hallo Welt^&pause >"%cd%\demo.cmd"
  rem Was nicht gesetzt werden soll, durch " " definieren...
  rem erstelle Desktoplink auf die neue  Batch-Datei, benutze das Symbol von Cmd.exe Arbeitsverzeichniss
  rem                     Name der Verknüpfung                Programm     Argumente       Icon      Arbeitsverz.    Beschreibung
%@__CreateShortCut% "%userprofile%\Desktop\Demo Batch.lnk" "%cd%\demo.cmd"    ""          "cmd.exe"  "%appdata%"     "Laberrhababer"


  rem Testen wir  noch den Gänsefüßchenzauber...
%@__CreateShortCut% "%userprofile%\Desktop\Arg mit Leerzechen Test.lnk" "Notepad" "'%cd%\demo.cmd'" "Notepad.exe" "" ""


pause
exit /b

Eine ganz andere Hausnummer sind SymLinks:

Diese sind Verweise, welche Direkt im NTFS-Dateisystem verankert und reagieren in jeglicher Hinsicht wie die Datei/Ordner, auf welche sie verweisen.

 rem erzeuge Testordner
md "testordner"
  rem schreibe eine datei rein
echo In Testordner geschrieben>"testordner\testfile.txt"

 rem erzeuge SymLink (junction)auf den Testordner
mklink /j "TestJunction" "testordner"
echo In Testjunction geschrieben>>"testordner\testfile.txt"

   rem in beiden fällen wurde in die gleiche Datei geschrieben
type "testordner\testfile.txt"

pause
  rem aufräumen
rd /q /s "testordner"
rd "TestJunction"

Ein Symlink ist für Programme dem verlinkten Objekt gleichwertig , das ist bei sehr alten Spielen recht nützlich, welche einen SaveOrdner in ihrem Arbeitsverzeichnis haben, dieses aber mit Adminrechten installiert wurde. Dann genügt es den Saveordner durch ein Junction gleichen Namens, auf einen Ordner im Nutzerbereich zu ersetzen.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Es kommt darauf an, was Du erreichen willst. Wenn Du beispielsweise eine größere Liste mit Datei-/Ordnernamen hast und davon sollen Links erstellt werden, kann Dir vielleicht ein Texteditor wie Notepad++ oder ein Makrogenerator wie AutoHotKey gut helfen.

Was willst Du konkret machen?