以管理员身份运行.bat文件,获取旧版本?

时间:2014-10-06 04:39:59

标签: windows batch-file windows-7 cmd

这很奇怪。我有一个.bat文件,我使用Windows 7的调度程序运行,我注意到我对它进行了更新后,它仍然表现得好像运行旧版本的.bat程序。

很容易分辨哪一个运行 - 它们输出到.txt文件,新版本转储了更多信息。所以这是在三种情况下发生的事情:

打开cmd窗口(右键单击并“以管理员身份运行”)。 CD到目录并以通常的方式执行setvispw.bat,输入“setvispw.bat”并按Enter键。

结果:当前版本按预期运行。

右键单击setvispw.bat和“打开”

结果:当前版本按预期运行。但这并不好,因为我正在更改其他用户的密码并需要管理员权限。

右键单击setvispw.bat和“以管理员身份运行”。 结果:其他东西运行!在我几天前对.bat进行更改之前,它似乎正在运行该版本。

所以我尝试了一些更奇怪的东西。我用虚拟程序替换了我的功能程序......它正在运行虚拟程序。

最后,我添加了一些“暂停”声明......就在我得到答案的时候。我将使用“回答您自己的问题”功能,而不是放弃这一点故障排除。

1 个答案:

答案 0 :(得分:1)

事实证明问题是我依赖于setvispw.bat的输出来告诉我该程序的运行版本。好吧,旧版本和新版本都有这一行:

echo Random string is !_RndAlphaNum! > C:\pathname\curVisitorPW.txt

但我添加的内容是这样的:

echo Sending email: >> curVisitorPW.txt

当我从C:\ pathname运行时,无论是在CMD窗口中还是没有管理员权限,它都运行得很好。但是当我使用Admin privs运行时,就像它从Scheduler那样,工作目录不是C:\ pathname - 它的C:\ Windows \ System32。直到我添加"暂停"我才看到它。并且看到我没有在我开的地方跑步!果然,在System32中有一个curVisitorPW.txt。

当然,解决方案很简单 - 使用完全限定的路径名​​。

希望如果像我一样的人在.bat文件中看到奇怪的行为,并且开始想知道是否存在某种缓存,管理员权限/权限或其他疯狂的东西,这将会派上用场。我准备把它钉在小鬼身上,我自己。

相关问题