REG 添加不 运行

REG add Doesn't Run

我编写了一个批处理文件来测试用户的 Microsoft Office 版本,将 Excel 加载项从共享驱动器复制到他们的设备,然后将注册表项添加到他们的设备。

批处理中的每个单独操作都按设计工作。但是当我将它们全部组合在一起时,文件不喜欢 REG add 命令并完全关闭命令 window (即使我将 Pause 放在 REG add 行之后) .

为了排除故障,我创建了一个新的批处理文件并向其中添加了我的代码片段,一次一个部分,并在每次添加新部分时测试该文件。每个部分 运行 都很好,直到我到达这个部分:

CHDIR "C:\Windows\System32"
IF NOT %ALREADY_ENABLED%=="TRUE" (
    REM Add the new key value if it doesn't exist already.
    REG add HKCU\Software\Microsoft\Office.0\Excel\Options /v OPEN /t REG_SZ /d "%PATH%" /f
)

为了查看问题是否出在我的 IF 语句上,我注释掉了 REG add 行并将 ECHO Hello World 放在 IF 语句中。文件 运行 很好,并按预期给出了 Hello World 输出。

我知道 REG add 命令有效,因为我有一个只包含那段代码的批处理文件,它工作得很好:

@Echo off
setlocal enableDelayedExpansion ENABLEEXTENSIONS

chdir "C:\Windows\System32"

SET PATH=\"C:\Program Files (x86)\Microsoft Office\Office15\Library\Cerner_AddIn.xlam\"

REG add HKCU\Software\Microsoft\Office.0\Excel\Options /v OPEN /t REG_SZ /d "%PATH%" /f

我认为问题与 PATH 变量有关,但我很困惑为什么这在一个文件中有效而在另一个文件中无效。 PATH 的值是否有可能在设置后在运行时以某种方式发生变化?

我不确定如何捕获错误以查看此处抛出的错误。我尝试处理错误的所有方法都不起作用,命令 window 关闭。关于我在这里做错了什么有什么想法吗?

也许这段代码可以提供帮助:

SET "myPATH=C:\Program Files (x86)\Microsoft Office\Office15\Library\Cerner_AddIn.xlam"
IF NOT "%ALREADY_ENABLED%"=="TRUE" (
    REM Add the new key value if it doesn't exist already.
    REG add HKCU\Software\Microsoft\Office.0\Excel\Options /v OPEN /t REG_SZ /d "%myPATH%" /f
)

注:

  • 不更改系统环境变量PATH;使用另一个变量名 (myPATH);
  • set "variablename=variable value" 中引用;
  • if 声明中引用;
  • 要捕获批处理文件中的任何错误,请在调试时使用 echo ON

资源(必读):