我有一个如下所示的批处理文件:
set OWNPATH = %~dp0
for /r %OWNPATH% %%F in (*.ocx) do ( echo %%F )
当我启动它时,它正确地列出了同一文件夹中的所有 OCX 文件,但列出了
中的 OCX 文件C:\Windows\System32
当我右键单击它并选择“以管理员身份运行”时。
我该如何解决这个问题?该脚本一般需要管理员权限。
最佳答案
您的设置
正在设置%OWNPATH %
(请注意OWNPATH
和=
之间的空格)。因此 %OWNPATH%
(没有空格)未定义,并且 for/r %OWNPATH% %%F ...
扩展为 for/r % %F
,for
循环最终查找当前目录(以管理员身份运行时为 C:\Windows\System32)。
养成这样完成作业的习惯,以避免常见错误:
set "OWNPATH=%~dp0"
关于windows-7 - Batch ~dp0 不适用于管理员权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16301314/