蝙蝠文件停止,我不知道为什么

时间:2015-04-07 20:13:22

标签: batch-file windows-7-x64

所以,我有一个bat文件,我正在构建一个简单的配置文件备份/恢复。我正在运行Windows 7 64位。

我完成了99%的脚本,直到达到这一点然后就死了。要明确的是,在我工作的环境中,我必须为某些事情关闭UAC。比我高得多的人打电话。

然而,这需要这样做,但它会在" [完整]"之后消失。是的回应。它没有关闭窗口,它只是回到C提示符。

在此之后它(尝试)做的唯一其他事情是在15秒计时器之后将用户注销。

非常感谢任何帮助。

echo [ Turning off UAC... ]
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
ping -n 2 -w 1000 127.0.0.1 > nul
echo [ COMPLETE ]
ping -n 2 -w 1000 127.0.0.1 > nul
echo.
ECHO ==========================================================
ECHO =                   Restore Complete                     =
ECHO =   Computer will logoff in 15 seconds to apply changes. =
ECHO ==========================================================
TIMEOUT 16
shutdown /l
@pause
:EOF

1 个答案:

答案 0 :(得分:1)

我制作了一个测试批处理文件来执行您正在尝试的内容:

@echo off
echo before
cmd /k echo I'm doing it!
echo after

结果如下:

C:\files\j>test
before
I'm doing it!

所以我把它改成了:

@echo off
echo before
call echo I'm doing it!
echo after

得到了这个:

C:\files\j>test
before
I'm doing it!
after

很清楚,/k不适合你。但是CALL会将它放在一个新shell中......所以我的建议是将该行更改为:

%windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

没有cmd,没有\ k,没有任何东西 - 只需运行REG.exe。

如果必须,请使用CALL,因为您要添加一个注册表项,它应该保留在那里。