2016-11-29 43 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