我很生气(在我看来)应该是一件容易的事: 在桌面上(但可能在任何地方),我有一个文件夹“项目”,一个“ console.msc”和另一个文件夹“文件”。
“ console.msc”有一个运行file1.bat的任务,如果我使用完整路径,它可以工作,但相对路径则不起作用。
c:\ users \ user1 \ Desktop \ project \ files \ file1.bat作品
。\ files \ file1.bat 不工作
我一直看到,自定义mmc是以提升的特权启动的(很好,我想要它),但是用于调用file1.bat的相对路径只是行不通,并且返回的错误是“ Windows找不到[ ..]“
有人知道如何告诉Windows保留运行mmc的当前文件夹吗?任何线索欢迎! :-)
答案 0 :(得分:0)
以提升的特权运行进程可能会导致该进程使用不同的working directory,这就是为什么相对路径不起作用的原因。
如果您不想使用绝对路径,则必须找到一种方法来获取应用程序所在目录的路径,然后将相对路径附加到该路径。
您没有指定任务的运行方式,但是如果它来自另一个.BAT文件,则批处理文件目录的完整路径存储在%~dp0
变量下。您可以查询this question的答案以了解更多详细信息。
您还可以始终使用Process Explorer之类的工具来查看有关正在运行的进程的信息,包括工作目录(在此称为“当前目录”)。