【问题标题】:Windows, relative paths and elevation窗口、相对路径和高度
【发布时间】:2018-09-04 08:31:10
【问题描述】:

我对(在我看来)应该是一件容易的事感到生气: 在我的桌面上(但可能在任何地方)我有一个文件夹“project”、一个“console.msc”和另一个文件夹“files”。

“console.msc”有一个运行 file1.bat 的任务,如果我使用完整路径,它可以工作,但它不适用于相对路径。

c:\users\user1\Desktop\project\files\file1.bat WORKS

.\files\file1.bat 不工作

我一直看到,自定义 mmc 以提升的权限启动(很好,我想要它)但是用于调用 file1.bat 的相对路径不起作用,返回的错误是“Windows 找不到 [ ..]"

有人知道如何告诉 Windows 保留当前运行 mmc 的文件夹吗?欢迎任何线索! :-)

【问题讨论】:

  • 使用相对路径名是单方面的错误。永远不要这样做。始终构造完全限定的路径名​​。

标签: windows path elevation


【解决方案1】:

以提升的权限运行进程可能会导致该进程出现不同的working directory,这就是相对路径不起作用的原因。

如果您不想使用绝对路径,则必须找到一种方法来获取应用程序所在目录的路径,然后将相对路径附加到该目录。

您没有指定如何运行任务,但如果它来自另一个 .BAT 文件,则批处理文件目录的完整路径存储在 %~dp0 变量下。您可以查找this question 的答案以获取更多详细信息。

您还可以随时使用Process Explorer 之类的工具来查看有关您正在运行的进程的信息,包括工作目录(那里称为当前目录)。

【讨论】:

  • 您好,感谢您的提示!我知道 %~dp0 ,是的,如果您运行批处理文件,它可以工作,但问题来自 MMC GUI。无论如何,我会尽快尝试您建议的其他变量:-)
猜你喜欢
  • 2013-03-08
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 2010-12-17
  • 1970-01-01
相关资源
最近更新 更多