Tengo un acceso directo a una carpeta y quiero abrirla desde el símbolo del sistema. Quiero que el símbolo del sistema cambie inmediatamente a la ubicación de destino del acceso directo. En cambio, si intento ejecutar el acceso directo en el símbolo del sistema, simplemente abre la carpeta en el Explorador de Windows.
¿Cómo puedo analizar un archivo de acceso directo (.LNK) desde el símbolo del sistema y cambiar a la carpeta de destino del acceso directo?
Respuesta1
Cuando inicio CMD, veo C:\Users\dave> pero quiero cambiar el directorio a C:\wamp\www sin tener que presionar cd ../../. Entonces creé un acceso directo a la carpeta 'www' en la carpeta 'dave'.
Este es un típicoproblema xy. Si desea que CMD se abra siempre en un directorio específico en lugar del predeterminado, todo lo que necesita hacer es simplemente cambiar las propiedades del acceso directo de la siguiente manera:
En Windows 7, el acceso directo al símbolo del sistema generalmente se encuentra en Start Menu > All Programs > Accessories
, así que simplemente haga clic derecho en el acceso directo, seleccione Propiedades y edite elEmpezar encampo a tu gusto.
También puede crear un archivo por lotes llamado, por ejemplod.batque contiene una sola línea cd /d c:\wamp\www
. Coloque el archivo por lotes en algún lugar de su ruta y ahora todo lo que necesita hacer es abrir CMD y escribirdpara cambiar al directorio específico. También hay muchas más soluciones similares.
Si está decidido a analizar un archivo de acceso directo (.LNK) desde el símbolo del sistema, guarde lo siguiente comoParseLnk.baty ejecútelo desde el símbolo del sistema como 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"
Respuesta2
En caso de que alguien haya respondido a esta pregunta como lo hice yo y quiera descifrar un archivo .lnk usando solo el símbolo del sistema, intente:
type mylink.lnk|find "\"
Respuesta3
Creo que el problema es que un archivo .lnk es un documento que es interpretado por un programa, Explorer.exe, tal como lo manejaría Word o cualquier otro archivo docx. Tendrías que escribir algún tipo de script para analizar el archivo lnk y ejecutar un comando cd.
Es posible que exista la posibilidad de hacer lo que desee en PowerShell (a diferencia del símbolo del sistema) a través de un cmdlet, ya sea integrado, de terceros o uno que pueda escribir usted mismo, pero no lo sé.
Respuesta4
Puede configurar un script de inicio en su registro insertando un elemento como este:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
Autorun REG_EXPAND_SZ <some-path-with-scripts>\msdos-startup.bat
Y en este archivo "msdos-startup.bat" colocas esa línea que define algún tipo de alias (yo uso aquí el script proporcionado por Karan arriba):
doskey l=<some-path-with-scripts>\ParseLnk.bat $*
Ahora cuando abras una consola de línea de comandos, se ejecutará todo lo anterior y solo tendrás que escribir:
l some-shortcut.lnk