fix: install.bat — генерация .reg через PowerShell (UTF-16)

This commit is contained in:
admin committed 2026-06-28 16:43:07 +02:00
1 parent c5d333f3e9
commit abad7e0fe1
1 file changed
+26 -29
+26 -29
View File
@@ -1,43 +1,40 @@
@echo off
chcp 65001 >nul
set "BAT_DIR=%~dp0"
set "BAT_PATH=%BAT_DIR%raskidator.bat"
set "REG_FILE=%BAT_DIR%install-context-menu.reg"
echo Создание install-context-menu.reg с путём: %BAT_PATH%
echo.
>"%BAT_DIR%install-context-menu.reg" (
echo Windows Registry Editor Version 5.00
echo.
echo ; Контекстное меню — правый клик в пустом месте папки
echo [HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000]
echo @="Raskidator-3000"
echo "Icon"="\"%BAT_PATH:\=\\%\",0"
echo.
echo [HKEY_CLASSES_ROOT\Directory\Background\shell\Raskidator3000\command]
echo @="\"%BAT_PATH:\=\\%\" \"%%V\""
echo.
echo ; Контекстное меню — правый клик на папке
echo [HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000]
echo @="Raskidator-3000"
echo "Icon"="\"%BAT_PATH:\=\\%\",0"
echo.
echo [HKEY_CLASSES_ROOT\Directory\shell\Raskidator3000\command]
echo @="\"%BAT_PATH:\=\\%\" \"%%1\""
echo.
echo ; Библиотеки (Pictures, Music, Videos, Documents)
echo [HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000]
echo @="Raskidator-3000"
echo "Icon"="\"%BAT_PATH:\=\\%\",0"
echo.
echo [HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Raskidator3000\command]
echo @="\"%BAT_PATH:\=\\%\" \"%%V\""
)
:: Генерируем .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"
echo.
echo Готово. Запусти install-context-menu.reg двойным кликом и подтверди добавление в реестр.
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
pause