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