wie mit batch verknüpfung erzeugen?
wie kann man mit batch verknüpfungen erstellen und denen dann einen pfad zuweisen?
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.
Schau mal hier https://superuser.com/questions/392061/how-to-make-a-shortcut-from-cmd
Vielleicht ist es dann nicht direkt über cmd, aber mit vbs sollte es auf jeden Fall machbar sein ;)
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?