Replacing registry default value from command line

I'm modifying an entry in the Windows registry. In the key there is a single value called (Default) of type REG_SZ. This value is not set.

I've tried using REG Add "HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg" /f /v "(Default)" /t REG_SZ /d "PhotoViewer.FileAssoc.Tiff" to change the data associated with (Default), but instead it creates a second (Default) value underneath the original, like so:

enter image description here

How can I correctly replace this information without using a reg file? I want to stick to the command line for the purposes of this project.


How can I correctly replace this information

REG Add "HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg" /f /v "(Default)" /t REG_SZ /d "PhotoViewer.FileAssoc.Tiff"

Use the /ve option (Set the (default) value) instead of /v:

REG Add "HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg" /ve /d "PhotoViewer.FileAssoc.Tiff" /f

Syntax

REG ADD [ROOT\]RegKey /ve [/d Data] [/f] -- Set the (default) value

Source reg


Further Reading

  • An A-Z Index of the Windows CMD command line - An excellent reference for all things Windows cmd line related.
  • reg - Read, Set or Delete registry keys and values, save and restore from a .REG file.

Try using /ve instead of /v like this: REG Add "HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg" /f /ve /d "PhotoViewer.FileAssoc.Tiff"


Hint: /ve adds an empty value name (Default) for the key.

So the correct Command-line would be:

REG Add "HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg" /f /ve /t REG_SZ /d "PhotoViewer.FileAssoc.Tiff"

Or the shorter form.

REG Add "HKCU\SOFTWARE\Classes\.jpg" /f /ve /t REG_SZ /d "PhotoViewer.FileAssoc.Tiff"