REG添加不运行

时间:2015-05-14 20:36:21

标签: windows batch-file registry

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

批处理中的每个单独操作都按设计工作。但是,当我将它们组合在一起时,该文件不像REG add命令并完全关闭命令窗口(即使我将Pause放在REG add行之后。 / p>

要进行故障排除,我创建了一个新的批处理文件并添加了我的代码片段,一次一个部分,并在每次添加新部分时测试该文件。每个部分都运行良好,直到我进入本节:

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\15.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\15.0\Excel\Options /v OPEN /t REG_SZ /d "%PATH%" /f

我认为这个问题与PATH变量有关,但我对于为什么这个在一个文件中工作而在另一个文件中工作却傻眼了。在PATH设置之后,PSeq的值是否可能在运行时以某种方式发生变化?

我不确定如何捕获错误甚至看到这里抛出的错误。我尝试处理错误的所有内容都不起作用,命令窗口关闭。关于我在这里做错了什么的想法?

1 个答案:

答案 0 :(得分:1)

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

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\15.0\Excel\Options /v OPEN /t REG_SZ /d "%myPATH%" /f
)

注意:

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

资源(必读):