Советы
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Получился «ярлык», который всегда запускает программу независимо от пути её установки.