2016-11-29 38 views
0

我想更改注册表值(REG_DWORD),然后通过批处理文件运行应用程序,该批处理文件与应用。 我想下面的线,但是,这并不工作:使用批处理文件更改注册表值,然后运行应用程序

reg add "HKEY_CURRENT_USER\A User Name\An Application Name" /v A value name_h3981298716 /d "99" /t REG_DWORD /f 

START %~dp0AnApplicationName.exe 

“开始...”将在不工作“REG ADD ...”代码。批处理文件可以运行应用程序,但它不能更改REG_DWORD类型的注册表值。

如何正确使用批处理文件执行以下序列?

  1. 首先,更改REG_DWORD类型的注册表值。

  2. 然后运行一个应用程序。

+0

因为有些不妥。请更具体! – aschipfl

+0

使用双引号尝试围绕“%〜dp0AnApplicationName.exe”。每当批处理文件“不起作用”时,都会在其中放置尽可能多的有用的“echo”,并使用命令提示符启动它。有了这个,你可以检查文件失败的地方。 – geisterfurz007

+0

“START ...”将在没有“reg add ...”代码的情况下运行。批处理文件可以运行应用程序,但它不能更改REG_DWORD类型的注册表值。 – Bayu

回答

1
reg add "HKCU\A User Name\An Application Name" /v "A value name_h3981298716" /d "99" /t REG_DWORD /f 

注意,如果值名称包含空格,那么它应该用双引号括起来。即使值名称不包含任何空格,也要这样做。

例,与其它键名:

==> reg query "HKCU\Software\Test Key" /t reg_dword 

End of search: 0 match(es) found. 

==> reg add "HKCU\Software\Test Key" /v A value name_h3981298716 /d "99" /t REG_DWORD /f 
ERROR: Invalid syntax. 
Type "REG ADD /?" for usage. 

==> reg add "HKCU\Software\Test Key" /v "A value name_h3981298716" /d "99" /t REG_DWORD /f 
The operation completed successfully. 

==> reg query "HKCU\Software\Test Key" /t reg_dword 

HKEY_CURRENT_USER\Software\Test Key 
    A value name_h3981298716 REG_DWORD 0x63 

End of search: 1 match(es) found. 
+0

我用双引号将值名称包围起来,然后运行批处理文件,但该值仍然不会更改。 – Bayu

+0

@Bayu如果该值没有改变,那么你应该得到一个错误信息。在reg add ...下面添加一个'pause'命令来查看结果。按照我在示例中所做的相同方式,使用'reg query ...'检查成功。 – JosefZ

+0

在“reg add ...”下面添加“pause”后出现消息: – Bayu