我正在尝试开发一个简单的脚本,可以运行第二个脚本作为计算机的本地管理员。作为我目前正在尝试的第一个脚本:
set name=%computername%
runas /noprofile /user:%name%\Administrator "cmd.exe /c %cd%bg2.2.bat"
当我运行脚本时,它似乎永远不会运行位于同一目录中的第二个脚本。第二个脚本仅用于复制文件。
del "C:\Windows\obh_logo.bmp"
copy "%cd%obh_logo.bmp C:\Windows\obh_logo.bmp"
当第一个脚本运行时,系统会提示我输入管理员密码,一旦我输入,第二个命令提示符似乎在屏幕上闪烁然后消失。它似乎永远不会运行第二个脚本。这似乎不起作用的原因是什么?
答案 0 :(得分:0)
(只是测试它,当然变量在命令被调用之前被替换并且实际上指向第一个脚本目录,但问题仍然存在于第二个脚本中)
%cd%
可能不会指向您认为它的位置,runas
更改您正在启动的cmd.exe实例的工作目录,可能更改为C:\ Windows \ system32。
将其替换为%~dp0
,这将生成当前批处理文件的驱动器和路径。
但是!您的脚本不会运行第二个提升的文件,只是在管理员帐户下,这是不一样的。手动确认始终是必要的,有关在脚本中请求提升的可能方法,请参阅here。
我现在假设缺少权限是实际问题,在第二个脚本中添加pause
语句进行观看,或者使用cmd /k
进行调用,以便控制台不会关闭。< / p>