从Windows资源管理器以管理员身份启动时执行目录更改

时间:2014-10-03 09:45:32

标签: batch-file windows-8.1

我正在使用.bat文件进行安装,当我需要访问文件(例如解压缩)时,我经常使用“。\”,以便获取我所在的目录。< / p>

直到昨天突然间我有两种不同的行为:

  • 从命令控制台(目录中的控制台)恢复:文件正常工作并知道。\ is at at。
  • 从Windows资源管理器启动时,如果未以管理员权限启动,它也会起作用
  • 如果具有管理员权限的Windows资源管理器中的launcehd执行目录(因此,如果是.bat文件中的第一个命令,则使用cd打印的目录)突然显示为c:\ windows \ system32

这种行为就像我说的那样,就在几天前开始(2天前我们第一次看到它时,我们尝试了.bat文件),之前它从Windows资源管理器开始与命令控制台完全相同。

所以我的问题是双重的:

  1. 对于这种改变的行为有什么了解吗?
  2. 如何获取.bat文件所在的当前目录的句柄(因为.zip文件将始终与.bat文件本身位于同一目录中),因此如何解决此问题我需要以管理员权限启动文件
  3. 我发现windows vista中存在类似的问题: Windows batch file starting directory when 'run as admin'虽然引起我兴趣的是,为什么这个问题几周没出现,最近才出现在Windows 8中

1 个答案:

答案 0 :(得分:0)

将此作为@echo off之后的行:

cd /d "%~dp0"

它会将工作目录更改为批处理文件所在的位置。