Внизу листинг кода для командной строки, который правит ветки реестра для открытия книг Excel в разных окнах.
Создан потому что после установки обновлений настройки приходится вбивать заново.
Скопировать, вставить в блокнот, сохранить с расширением bat
Выполнять от администратора
(после первого запуска - сохранить выгруженные файлы)
Создан потому что после установки обновлений настройки приходится вбивать заново.
Скопировать, вставить в блокнот, сохранить с расширением bat
Выполнять от администратора
(после первого запуска - сохранить выгруженные файлы)
echo off
set strin=0
rem корневые ветки реестра
set regQ8=HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open
set regQ12=HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
rem Имена Файлов выгрузки
set regF8=sheet8.reg
set regF12=sheet12.reg
cd %~dp0
CALL :startScript %regQ8% %regF8%
CALL :startScript %regQ12% %regF12%
GOTO :EOFy
:startScript
echo.
echo #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#
set NamePathReg=%1
set NameFileReg=%2
set modify=0
rem найти ветки и параметры
reg query %NamePathReg%\command >2>nul
if errorlevel 1 (
echo # ОШИБКА: Ветка %NamePathReg% не найдена
GOTO :EXIT
)
rem Выполнить экспорт
reg export %NamePathReg% %NameFileReg% /y >2>nul
if errorlevel 1 (
echo # ОШИБКА: Экспорт %NamePathReg% в %NameFileReg% НЕ выполнен
GOTO :EXIT
)
echo # УСПЕШНО: Экспорт %NamePathReg% в %NameFileReg% выполнен
rem Выполнить преобразование файла
CALL :REPLACE %NameFileReg%
if %modify%==0 (
echo # ТЕКСТ: Параметры не были изменены.
GOTO :EXIT
)
echo # УСПЕШНО: Параметры подготовлены для загрузки
rem выполнить удаление ветки
reg delete %NamePathReg% /f >2>nul
if errorlevel 1 (
echo # ОШИБКА: Удаление ветки %NamePathReg% провалилось.
GOTO :EXIT
)
echo # УСПЕШНО: Удаление ветки прошло %NamePathReg% успешно.
rem выполнить загрузку
reg import %NameFileReg%_NEW.reg >2>nul
if errorlevel 1 (
echo # ОШИБКА: Импорт файла %NameFileReg%_NEW.reg провалился.
GOTO :EXIT
)
echo # УСПЕШНО: Импорт файла %NameFileReg%_NEW.reg прошел успешно.
echo #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#
GOTO :EXIT
:REPLACE
Setlocal EnableDelayedExpansion
if %1 == "" ( GOTO :EOF )
set modify=0
rem echo %1
del %1_NEW.reg
chcp 1251 >nul
for /f "tokens=* delims=," %%i in ('type %1') do (
set strin=%%i
rem правим dde в обычном режиме
echo !strin!|findstr "\/dde" >nul
set LevelError=!errorlevel!
if !LevelError! == 0 (
set strin=!strin:/dde=\"%%1\"!
set modify=1
)
rem правим dde в hex
echo !strin!|findstr "2f,00,64,00,64,00,65,00,00,00,00,00" >nul
set LevelError=!errorlevel!
if !LevelError! == 0 (
set strin=!strin:2f,00,64,00,64,00,65,00,00,00,00,00=22,00,25,00,31,00,22,00,00,00,00,00!
set modify=1
)
echo !strin!|findstr "ddeexec" >nul
set LevelError=!errorlevel!
if !LevelError! == 0 (
GOTO :m
)
echo !strin!>>%1_NEW.reg
rem echo !modify!
)
:m
chcp 866 >nul
EndLocal&Set modify=%modify%
Setlocal DISABLEDELAYEDEXPANSION
GOTO :EXIT
:EOFy
echo.
echo #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#
echo #.............................................. .............................................#
echo #........................ ВЫХОД ........................#
echo #.............................................. .............................................#
echo #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#
rem exit /b
:EXIT
exit /b
Комментариев нет:
Отправить комментарий