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

Gar*_*ris 60 windows windows-7 shortcuts path

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

New Files
 >Tools
 >Scripts
Tested Files
 >Tools
 >Scripts
Run Code Online (Sandbox Code Playgroud)

...我想在从“新文件”子文件夹到“测试文件”子文件夹的每个文件夹中都有一个快捷方式。但是这个文件夹可能会不时移动,这会破坏所说的快捷方式。

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

PS:类似相对快捷方式的情况,当目标是文件时,在/sf/ask/81868951/中处理文件夹-是。在本例中,目标是一个文件夹。

Rik*_*Rik 62

您可以使用此实用程序:Relative

它基本上创建了一个“explorer.exe”的快捷方式,并通过右键单击您的相对路径的参数(与创建普通快捷方式相同的方式)。

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

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

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

  • 这里的手动解决方案对我来说开箱即用。此外,我必须将“Start In”从 `%windir%` 更改为空。 (4认同)
  • “Relative”仅使用标准的“%windir%\explorer.exe”创建快捷方式,因此您在不同系统上不需要Relative。这与在创建标准快捷方式时在相对路径之前键入 `%windir%\explorer.exe` 相同。因此,如果您手动执行此操作,则根本不需要相对。(你只需要记住你的相对路径之前的命令) (3认同)
  • 是否有使用打开快捷方式文件的相同资源管理器窗口的解决方案?使用此解决方案会打开一个新的资源管理器窗口。我目前需要一个具有相对路径的快捷方式文件,打开时,它仍然使用相同的资源管理器窗口。 (3认同)

Sco*_*ain 36

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


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

在此处输入图片说明

%COMSPEC%是一个环境变量,默认指向命令提示符

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

  • 对于不同的情况很有用,但问题不在于“打开”某个文件;而是关于“打开”某个文件。它是关于能够跳转到 Windows 资源管理器中的指定文件夹。有没有办法调整这个答案来做到这一点? (3认同)

小智 10

这个技巧有效:

%COMSPEC% /C start "你的 exe 名称不带路径"

例子

%COMSPEC% /C 启动 winmine.exe

  • 请再次仔细阅读问题。您的回答 ** 不** 回答原始问题。 (4认同)
  • @semtex41- OP 的既定目标是“.. 一个快捷方式.. 到“测试文件”子文件夹”。如果您没有解释如何让这个答案实现这一点,那么请澄清您*正在*添加到答案中的内容。看起来您刚刚给出了另一个如何执行 .exe 文件的示例。但是答案已经显示了这样一个例子。所以请重新陈述你的观点? (4认同)
  • 对于 Win10 1607,此解决方案完美地回答了 OP 的问题,目标:`%COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"` Start In: [留空] (2认同)
  • @semtex41 嗯?我尝试这样做,结果是一个错误对话框,提示“Windows 找不到‘GoogleChromePortable’。这与 OP 将 Windows 资源管理器导航到指定文件夹的目标有什么关系? (2认同)
  • 您的回答针对目标是可执行文件的情况。OP 对文件夹的快捷方式感兴趣。请检查您的答案是否解决了该问题,并为此发布了一个明确的示例。 (2认同)
  • 它似乎*缺少一对空引号*,但是:`%COMSPEC% /C start "..\..\PortableApps\Test.exe"` 对我不起作用(只需在给定路径打开一个 cmd ).`%COMSPEC% /C start "" "..\..\PortableApps\Test.exe"` 工作正常。 (2认同)

小智 8

我在运行我的 Web 开发环境的模板中使用了类似的解决方案(打开项目目录、打开浏览器、运行 WAMP、运行 SCSS...)

在此处输入图片说明

我可以将参数传递给我的 bat 脚本等等,这很酷。确保在/c后面加上论点cmd.exe


小智 5

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

 mklink /d Tools "..\Tested Files\Tools"  (elevated command prompt)
Run Code Online (Sandbox Code Playgroud)

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

 mklink /j Tools "..\Tested Files\Tools"
Run Code Online (Sandbox Code Playgroud)

要在整个结构中移动,您应该使用xcopy命令。例如,如果所有结构都在container下:

container
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools  [ ..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools
Run Code Online (Sandbox Code Playgroud)

输入命令

 xcopy /b /e container container2
Run Code Online (Sandbox Code Playgroud)

将创建以下结构:

container2
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools  [ ..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools
Run Code Online (Sandbox Code Playgroud)

/ B开关将复制的符号链接,而不是将它们转换为文件夹。(注意/b复制命令的意义完全不同)