Ich habe eine Verknüpfung zu einem Ordner und möchte diese über die Eingabeaufforderung öffnen. Ich möchte, dass die Eingabeaufforderung sofort zum Zielspeicherort der Verknüpfung wechselt. Wenn ich stattdessen versuche, die Verknüpfung über die Eingabeaufforderung auszuführen, wird der Ordner einfach im Windows Explorer geöffnet.
Wie kann ich eine Verknüpfungsdatei (.LNK) aus der Eingabeaufforderung analysieren und zum Zielordner der Verknüpfung wechseln?
Antwort1
Wenn ich CMD starte, sehe ich C:\Users\dave>, aber ich möchte das Verzeichnis zu C:\wamp\www wechseln, ohne cd ../../ drücken zu müssen. Daher habe ich eine Verknüpfung des Ordners „www“ im Ordner „dave“ erstellt.
Dies ist ein typischerXY-ProblemWenn Sie möchten, dass CMD immer ein bestimmtes Verzeichnis statt des Standardverzeichnisses öffnet, müssen Sie lediglich die Eigenschaften der Verknüpfung wie folgt ändern:
In Windows 7 befindet sich die Verknüpfung zur Eingabeaufforderung normalerweise unter Start Menu > All Programs > Accessories
. Klicken Sie einfach mit der rechten Maustaste auf die Verknüpfung, wählen Sie Eigenschaften und bearbeiten Sie dieStartet inFeld nach Ihren Wünschen.
Sie können auch eine Batchdatei mit dem Namen erstellen,d.batdie eine einzelne Zeile enthält cd /d c:\wamp\www
. Platzieren Sie die Batchdatei irgendwo in Ihrem Pfad und jetzt müssen Sie nur noch CMD öffnen und eingebenDum in das angegebene Verzeichnis zu wechseln. Es gibt noch viele weitere ähnliche Lösungen.
Wenn Sie unbedingt eine Verknüpfungsdatei (.LNK) aus der Eingabeaufforderung analysieren möchten, speichern Sie Folgendes alsParseLnk.batund führen Sie es in der Eingabeaufforderung wie folgt aus ParseLnk <LNK File>
:
@echo off
echo set WshShell = WScript.CreateObject("WScript.Shell")>Tmp.vbs
echo set Lnk = WshShell.Createshortcut(WScript.Arguments(0))>>Tmp.vbs
echo WScript.Echo Lnk.TargetPath>>Tmp.vbs
for /f "delims=" %%d in ('cscript //nologo Tmp.vbs "%~1"') do del Tmp.vbs & cd /d "%%d"
Antwort2
Falls jemand wie ich vor dieser Frage steht und eine LNK-Datei nur über die Eingabeaufforderung entschlüsseln möchte, versuchen Sie Folgendes:
type mylink.lnk|find "\"
Antwort3
Ich denke, das Problem ist, dass eine .lnk-Datei ein Dokument ist, das von einem Programm – Explorer.exe – interpretiert wird, genau wie eine docx-Datei von Word oder einem anderen Programm verarbeitet wird. Sie müssten eine Art Skript schreiben, um die lnk-Datei zu analysieren und einen CD-Befehl auszuführen.
Möglicherweise besteht die Möglichkeit, das Gewünschte in PowerShell (im Gegensatz zur Eingabeaufforderung) über ein integriertes, ein Drittanbieter- oder selbst geschriebenes Cmdlet zu tun, aber ich weiß es nicht.
Antwort4
Sie können ein Startskript in Ihrer Registrierung festlegen, indem Sie ein Element wie das folgende einfügen:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
Autorun REG_EXPAND_SZ <some-path-with-scripts>\msdos-startup.bat
Und in diese Datei „msdos-startup.bat“ fügen Sie eine solche Zeile ein, die eine Art Alias definiert (ich verwende hier das oben von Karan bereitgestellte Skript):
doskey l=<some-path-with-scripts>\ParseLnk.bat $*
Wenn Sie jetzt eine Befehlszeilenkonsole öffnen, wird alles oben genannte ausgeführt und Sie müssen nur Folgendes eingeben:
l some-shortcut.lnk