fix: install/uninstall — reg add в терминале, без .reg файла

This commit is contained in:
admin committed 2026-06-28 16:48:04 +02:00
1 parent abad7e0fe1
commit f78ff6a793
2 files changed
+53 -43

No files matched your search

+32 -32
View File
@@ -1,40 +1,40 @@
@echo off
set "BAT_DIR=%~dp0"
set "BAT_PATH=%BAT_DIR%raskidator.bat"
set "REG_FILE=%BAT_DIR%install-context-menu.reg"
title Raskidator-3000 — установка контекстного меню
echo Создание install-context-menu.reg с путём: %BAT_PATH%
echo ========================================
echo Установка контекстного меню
echo Raskidator-3000
echo ========================================
echo.
echo Путь к скрипту: %~dp0raskidator.bat
echo.
:: Генерируем .reg через PowerShell (UTF-16 LE — правильная кодировка для реестра)
PowerShell -Command ^
"$path='%BAT_PATH:\=\\\%';" ^
"$c='Windows Registry Editor Version 5.00'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='; Контекстное меню — правый клик в пустом месте папки'+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000]'+[char]13+[char]10;" ^
"$c+='@=\"Raskidator-3000\"'+[char]13+[char]10;" ^
"$c+='\"Icon\"=\"\"\"'+$path+'\"\",0\"'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000\command]'+[char]13+[char]10;" ^
"$c+='@=\"\"\"'+$path+'\"\" \"%V\"\"'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='; Контекстное меню — правый клик на папке'+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000]'+[char]13+[char]10;" ^
"$c+='@=\"Raskidator-3000\"'+[char]13+[char]10;" ^
"$c+='\"Icon\"=\"\"\"'+$path+'\"\",0\"'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000\command]'+[char]13+[char]10;" ^
"$c+='@=\"\"\"'+$path+'\"\" \"%1\"\"'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='; Библиотеки (Pictures, Music, Videos, Documents)'+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000]'+[char]13+[char]10;" ^
"$c+='@=\"Raskidator-3000\"'+[char]13+[char]10;" ^
"$c+='\"Icon\"=\"\"\"'+$path+'\"\",0\"'+[char]13+[char]10+[char]13+[char]10;" ^
"$c+='[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000\command]'+[char]13+[char]10;" ^
"$c+='@=\"\"\"'+$path+'\"\" \"%V\"\"'+[char]13+[char]10;" ^
"Out-File -FilePath '%REG_FILE%' -InputObject $c -Encoding Unicode"
:: Directory\Background\shell — ПКМ в пустом месте папки
echo [1/3] Добавление в контекстное меню папок...
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000" /ve /t REG_SZ /d "Raskidator-3000" /f
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000" /v Icon /t REG_SZ /d "%~dp0raskidator.bat,0" /f
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000\command" /ve /t REG_SZ /d "\"%~dp0raskidator.bat\" \"%%V\"" /f
echo [+] Directory\Background — готов
echo.
:: Directory\shell — ПКМ на папке
echo [2/3] Добавление в меню при клике на папке...
reg add "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000" /ve /t REG_SZ /d "Raskidator-3000" /f
reg add "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000" /v Icon /t REG_SZ /d "%~dp0raskidator.bat,0" /f
reg add "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000\command" /ve /t REG_SZ /d "\"%~dp0raskidator.bat\" \"%%1\"" /f
echo [+] Directory\shell — готов
echo.
echo Готово. Запусти install-context-menu.reg двойным кликом и подтверди добавление в реестр.
:: LibraryFolder\Background — библиотеки (Pictures, Music...)
echo [3/3] Добавление в библиотеки (Pictures, Music, Video...)...
reg add "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000" /ve /t REG_SZ /d "Raskidator-3000" /f
reg add "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000" /v Icon /t REG_SZ /d "%~dp0raskidator.bat,0" /f
reg add "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000\command" /ve /t REG_SZ /d "\"%~dp0raskidator.bat\" \"%%V\"" /f
echo [+] LibraryFolder\Background — готов
echo.
echo Если ранее устанавливал — сначала удали старые ключи:
echo reg delete "HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000" /f
echo reg delete "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000" /f
echo reg delete "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000" /f
echo ========================================
echo Установка завершена!
echo Нажми ПКМ в любой папке -^> Raskidator-3000
echo ========================================
pause
+21 -11
View File
@@ -1,18 +1,28 @@
@echo off
chcp 65001 >nul
title Raskidator-3000 — удаление контекстного меню
echo Удаление Raskidator-3000 из контекстного меню...
echo ========================================
echo Удаление контекстного меню
echo Raskidator-3000
echo ========================================
echo.
echo [1/3] Удаление из контекстного меню папок...
reg delete "HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000" /f >nul 2>&1
if %errorlevel% equ 0 (echo [+] Directory\Background - удалён) else (echo [—] Directory\Background - не найден)
reg delete "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000" /f >nul 2>&1
if %errorlevel% equ 0 (echo [+] Directory\shell - удалён) else (echo [—] Directory\shell - не найден)
reg delete "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000" /f >nul 2>&1
if %errorlevel% equ 0 (echo [+] LibraryFolder\Background - удалён) else (echo [—] LibraryFolder\Background - не найден)
if %errorlevel% equ 0 (echo [+] Directory\Background — удалён) else (echo [—] Directory\Background — не найден)
echo.
echo Готово.
echo [2/3] Удаление из меню при клике на папке...
reg delete "HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000" /f >nul 2>&1
if %errorlevel% equ 0 (echo [+] Directory\shell — удалён) else (echo [—] Directory\shell — не найден)
echo.
echo [3/3] Удаление из библиотек (Pictures, Music, Video...)...
reg delete "HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000" /f >nul 2>&1
if %errorlevel% equ 0 (echo [+] LibraryFolder\Background — удалён) else (echo [—] LibraryFolder\Background — не найден)
echo.
echo ========================================
echo Удаление завершено!
echo ========================================
pause