2

我有一个看起来像这样的批处理文件:

set OWNPATH = %~dp0

for /r %OWNPATH% %%F in (*.ocx) do ( echo %%F )

当我启动它时,它正确列出了同一文件夹中的所有 OCX 文件,但列出了 OCX 文件

C:\Windows\System32

当我右键单击它并选择“以管理员身份运行”时。

我该如何解决?该脚本通常需要管理员权限。

4

1 回答 1

3

set正在设置%OWNPATH %(注意 和 之间的空格OWNPATH=。因此%OWNPATH%(没有空格)没有定义,for /r %OWNPATH% %%F ...并被扩展为for /r %%F,并且for循环最终在当前目录中查找(以管理员身份运行时为 C:\Windows\System32)。

养成这样做作业的习惯,以避免常见的错误:

set "OWNPATH=%~dp0"
于 2013-04-30T15:04:15.393 回答