2013-04-30 41 views
2

我有一个批处理文件,它看起来像这样:批处理〜dp0不适用于管理员权限?

set OWNPATH = %~dp0 

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

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

C中的OCX文件:\ Windows下\ System32

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

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

+0

您应该删除左右'SET OWNPATH =%〜空格dp0' – jeb 2013-04-30 14:41:54

+0

甚至更​​好:'设置“OWNPATH = %〜DP0" ' – Stephan 2013-04-30 14:46:14

回答

3

set被设置%OWNPATH %(注意OWNPATH=之间的空间)。因此%OWNPATH%(不带空格)没有定义,并for /r %OWNPATH% %%F ...被扩大到for /r %%Ffor循环结束了寻找当前目录(即C:\ Windows \ System32下,当以管理员身份运行)。

获取做你分配这样避免常识性错误的习惯:

set "OWNPATH=%~dp0"