Советы
September 9, 2021

Работа с реестром в cmd-файлах

🌰 reg query ключ /v значение

Вот какая проблема появилась: при обновлении яндекс-диска меняется путь его установки. Т.е. он устанавливается в папку с номером версии.

Сделаем cmd-файл, который будет запускать яндекс-диск. Для этого заметим, что актуальный путь хранится в реестре, в значении SyncManPath ключа HKEY_CURRENT_USER\Software\Yandex\Yandex.Disk.2\:

Прочитаем это значение из реестра командой reg query:

REG QUERY HKEY_CURRENT_USER\Software\Yandex\Yandex.Disk.2\ /v SyncManPath

Вывод команды следующий:

HKEY_CURRENT_USER\Software\Yandex\Yandex.Disk.2
    SyncManPath    REG_SZ    C:\Users\User\AppData\Roaming\Yandex\YandexDisk2\3.2.12.4249\YandexDisk2.exe

Первая строка пустая, во второй только ключ реестра, а вот в третьей строке содержится нужный нам путь к программе. Вытащим его с помощью For /f и запустим с помощью start:

For /f "tokens=3" %%a in ('REG QUERY HKEY_CURRENT_USER\Software\Yandex\Yandex.Disk.2\ /v SyncManPath') do start "" "%%a" -autostart

Получился «ярлык», который всегда запускает программу независимо от пути её установки.