使用 Windows 快捷方式的相对路径

使用 Windows 快捷方式的相对路径

我有一个类似文件夹方案(高度简化的版本):

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

... 我想要在每个文件夹中都设置一个从“新文件”子文件夹到“已测试文件”子文件夹的快捷方式。但是这个文件夹可能会不时被移动,这会破坏上述快捷方式。

有没有办法为每个文件夹创建相对快捷方式?我记得在 HTML 中可以这样做,您可以设置路径,类似于.../Files返回父文件夹然后进入新文件夹,但我不确定 Windows 快捷方式是否支持此功能?

PS: 当目标是文件时,类似的相对快捷方式的情况将在https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is. 在本例中,目标是一个文件夹。

答案1

您可以使用此实用程序:相对的

它基本上是explorer.exe通过右键单击来使用相对路径的参数创建一个快捷方式(与创建普通快捷方式的方式相同)。

当然,您可以手动执行此操作。
在您的示例中,您可以在“New Files\Tools”中创建一个快捷方式来

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

您可以使用 Windows 常用的上下文菜单“新建/创建快捷方式”来实现此目的,然后在“键入项目的位置”框中键入上述命令。

答案2

一种可能的解决方案是使用一行批处理文件而不是快捷方式来打开您想要打开的任何内容。批处理文件将允许您在其内部使用相对路径,并且将具有批处理文件所在文件夹的工作目录。


另一个选择是让你的快捷方式cmd.exe以你正在启动的任何内容开始,然后将你正在启动的内容作为参数传递给cmd.exe

在此处输入图片描述

%COMSPEC%是环境变量点默认进入命令提示符

/C导致控制台在执行命令后自行关闭。

答案3

这个技巧很有效:

%COMSPEC% /C 开始“您的 exe 名称不含路径”

例子

%COMSPEC% /C 启动 winmine.exe

答案4

您可以使用链接. 它允许您创建符号链接、硬链接和目录链接。

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

如果没有提升访问权限,则可以使用 /j

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

要移动整个结构,你应该使用复制命令。例如,如果所有结构都在容器

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

输入命令

 xcopy /b /e container container2

将创建以下结构:

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

/b交换机将复制符号链接而不是将它们转换为文件夹。(请注意/b有着完全不同的意义复制命令)

相关内容