2016-11-29 188 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追加...」コードなしで動作します「... START」。バッチファイルはアプリケーションを実行できますが、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

関連する問題