Синтаксис, предложенный афорией, правильный, без кавычек, как вы обнаружили. Но вы сталкиваетесь с проблемами, когда вам нужны пробелы в значении.
Однако, - это , в котором можно ввести кавычки в значение. Это выглядит странно, но работает:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d ^%SystemRoot^%;c:\<b>Program" Files"</b>\Intel\DMIX;C:\bin /t REG_EXPAND_SZ
Вы можете использовать кавычки там, где это необходимо, но не вокруг переменных. И не сразу после обратной косой черты.
Кроме того, помните, что синтаксис для использования в командном файле отличается от синтаксиса командной строки. Если вы поместите эту строку в командный файл, вам нужно заменить «^» на другой «%»:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d %%SystemRoot%%;c:\Program" Files"\Intel\DMIX;C:\bin /t REG_EXPAND_SZ
(cmd.exe всегда напоминает мне цитату Генри Спенсера «Те, кто не понимает Unix, обречены плохо его изобретать» * )