【发布时间】:2015-09-17 20:13:47
【问题描述】:
我有一个脚本来更改注册表值。 从提升的命令窗口运行它会更改密钥。 直接以管理员身份运行(右键单击)它什么都不做,同样的事情是从具有提升权限的任务计划程序运行它。
知道为什么吗?
代码,基本上它会检查 IP 号码,并据此更改自动配置代理脚本,其中包含具有不同 Internet 连接设置密钥的 .reg 文件的多个选项。
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
SET Target=%computername%
IF %Target%.==. ECHO Missing target!&PAUSE&GOTO :EOF
FOR /F "tokens=2 delims=[]" %%A in ('PING %Target% -4 -n 1 ^| FIND "["') DO (
SET TargetIP=%%A
SET TargetIP
)
IF NOT DEFINED TargetIP ECHO NO IP found!&PAUSE&GOTO :EOF
:Compare
SET PartialIP=%TargetIP:~0,9%
IF "%PartialIP%"=="172.20.25" (
REGEDIT /S conbae.reg
goto :eof)
IF "%PartialIP%"=="172.20.22" (
REGEDIT /S conbna.reg
goto :eof)
SET PartialIP=%TargetIP:~0,6%
SET PartialIP
IF "%PartialIP%"=="172.20" (
REGEDIT /S conweb.reg
) ELSE (
REGEDIT /S sinbae.reg
)
【问题讨论】:
-
哪个脚本?请展示你的脚本。
-
1.试试
reg import filename.reg。 2. 删除/注释@echo off,在末尾添加pause,正常和提升运行批处理文件,比较控制台输出。 -
这就是将 REGEDIT /S 更改为 reg 导入的答案。谢!!
-
引用你的话:>“从提升的命令窗口运行它会改变密钥。”那么告诉我们你是如何运行一个不应该在命令行上运行的命令的?
标签: windows batch-file cmd registry regedit