2013-09-12 14:49:06 +0000 2013-09-12 14:49:06 +0000
53
53

Uso de rutas relativas para los accesos directos de Windows

Tengo un esquema de carpetas como (versión muy simplificada):

New Files
 >Tools
 >Scripts
Tested Files
 >Tools
 >Scripts

… y me gustaría tener un acceso directo en cada carpeta desde las carpetas hijas de “New Files”, a la carpeta hija de “Tested Files”. Pero esta carpeta puede ser movida de vez en cuando, lo que rompería dichos accesos directos.

¿Hay alguna forma de hacer un acceso directo relativo a cada carpeta? Recuerdo haber hecho esto en HTML, donde se podía establecer una ruta, algo parecido a .../Files para volver a un padre y luego a una nueva carpeta, pero no estoy seguro de si esto es algo compatible con los accesos directos de Windows.

PD: El caso de los accesos directos relativos similares, cuando el objetivo es un archivo, se trata en https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is . En este caso, el objetivo es una carpeta.

Respuestas (8)

53
53
53
2013-09-12 15:08:36 +0000

Puede utilizar esta utilidad: Relativo .

Básicamente crea un acceso directo a “explorer.exe” con el parámetro de tu ruta relativa con un clic derecho (de la misma manera que creas un acceso directo normal).

Por supuesto puedes hacerlo manualmente.
En tu ejemplo crearías un acceso directo en “Nuevos Archivos\NHerramientas” a

%windir%\explorer.exe "..\..\Tested Files\Tools"

Puedes usar el menú contextual habitual “Nuevo/Crear acceso directo” de Windows para esto y escribir el comando anterior en la casilla “Escribe la ubicación del elemento”.

31
31
31
2013-09-12 15:45:43 +0000

Una posible solución es utilizar un archivo por lotes de una línea en lugar de un atajo para abrir lo que quiera abrir. El archivo por lotes le permitirá usar rutas relativas dentro de sí mismo y tendrá un directorio de trabajo de cualquier carpeta en la que se coloque el archivo por lotes.

  • *

Otra opción es hacer que su acceso directo comience cmd.exe en lugar de lo que está lanzando y luego pasar lo que sea que está lanzando como un argumento a cmd.exe

%COMSPEC% es una variable de entorno que apunta al símbolo del sistema por defecto .

/C hace que la consola se cierre sola después de ejecutar el comando.

7
7
7
2014-05-12 01:21:58 +0000

Estoy usando una solución similar en una plantilla que ejecuta mi entorno de desarrollo web (abrir el directorio del proyecto, abrir el navegador, ejecutar WAMP, ejecutar SCSS…)

puedo pasar argumentos a mi script bat y etc., esto es genial. Asegúrate de poner el argumento /c después de cmd.exe

6
6
6
2016-08-18 16:47:41 +0000

Este truco funciona :

%COMSPEC% /C start“su nombre exe sin ruta”

ejemplo

%COMSPEC% /C start winmine.exe

4
4
4
2016-08-30 08:19:38 +0000

Puede utilizar mklink . Permite crear enlaces simbólicos, enlaces duros y enlaces de directorio.

mklink /d Tools "..\Tested Files\Tools" (elevated command prompt)

Si no hay acceso elevado, puedes usar /j

mklink /j Tools "..\Tested Files\Tools"

Para moverte por toda la estructura debes usar el comando xcopy. Por ejemplo, si toda la estructura está bajo contenedor :

container
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

introduciendo el comando

xcopy /b /e container container2

creará la siguiente estructura:

container2
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

El interruptor /b copiará los Enlaces simbólicos en lugar de convertirlos en carpetas. (Tenga en cuenta que /b tiene un significado completamente diferente para el comando copy)

1
1
1
2015-09-26 02:33:10 +0000

Un acceso directo puede registrar su ubicación en una variable y llamar a un comando utilizando la variable. Por ejemplo, cree el acceso directo “Grandparent” con el objetivo:

%windir%\system32\cmd.exe /c set HERE="%CD%" && "C:\Here.bat"

Cree el archivo por lotes “C:\Here.bat” con la única línea:

@%windir%\explorer.exe /n,/select, %HERE%

Ahora, sea cual sea la carpeta en la que esté Grandparent, cuando haga clic en él, se abrirá el padre de su carpeta padre. Incluso funciona con Grandparent en un directorio raíz.

Tu archivo por lotes podría haber usado %HERE% en el arranque de algo distinto a explorer.exe. O en lugar de Here.bat después del && en el objetivo del acceso directo, podrías llamar a un programa que haga uso de %HERE%.

En mi sistema Grandparent parece funcionar con & o &&.

1
1
1
2016-01-01 08:42:40 +0000

Si deja vacía la casilla 'Start In' en las propiedades del acceso directo, los enlaces serán relativos al directorio de trabajo actual.

Véase también https://stackoverflow.com/a/17951772/40961

0
0
0
2019-06-20 16:48:10 +0000

Puede crear una variable de entorno que contenga la ruta (relativa) a la carpeta de destino o a una carpeta superior en la estructura del sistema de archivos.

Ejemplo:

  • Variable de entorno:

  • Acceso directo al objetivo:

Puede utilizar el comando SETX del DOS para crear variables de entorno.