|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » как бы добавить в переменные имя ключа реестра и его значение ? |
|
как бы добавить в переменные имя ключа реестра и его значение ?
|
Старожил Сообщения: 440 |
Профиль | Отправить PM | Цитировать в общем есть ключи реестра
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles] "D:\\1c\\conf\\proekt\\"="proekt" "D:\\1c\\conf\\torg\\DemoDB\\"="Конфигурация \"Торговля+Склад\" Демо" "D:\\1c\\conf\\bir\\"="bir" "D:\\1c\\conf\\torg\\DB\\"="Конфигурация \"Торговля+Склад\"" "D:\\share\\1SBDemo\\"="Информационная База #1" "D:\\Копия союзOld\\2005\\"="Информационная База #2" "D:\\share\\496\\"="496" "D:\\1c\\tutor\\"="tutor" пытаюсь сделать это командой REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles и сделать по тому же принципу как в http://forum.oszone.net/thread-67920.html но почему то не выходит. поидея след. строка должна бы выдать путь , но она почему-то выдает только часть его for /f "TOKENS=1 DELIMS=REG_SZ" %%A in ('netsh interface show interface ^| find "REG_SZ"') do echo %%A %%B %%C %%D %%E %%F %%G >> ___1.tmp |
|
Отправлено: 11:28, 15-04-2008 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mitiya:
|
|
Отправлено: 13:16, 17-04-2008 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать проблема с кракозяброй решается просто командой
CHCP 1251 так-то вроде все выводит правильно, но только я если честно не совсем понял что тут с переменными , это что-то типа массива что ли ? не могли бы вы немного пояснить код , пожалуйста. |
Отправлено: 13:33, 17-04-2008 | #12 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mitiya:
Цитата mitiya:
|
||
Отправлено: 17:00, 17-04-2008 | #13 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать mitiya,
но только я если честно не совсем понял что тут с переменными Дык и мы тоже не очень поняли, чего Вы хотите получить в итоге... :] |
Отправлено: 18:20, 17-04-2008 | #14 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать В итоге хотелось получить переменные вида :
path1=D:\1c\conf\proekt\ name1=proekt path2=D:\1c\conf\torg\DemoDB\ name2=Конфигурация "Торговля+Склад" Демо и т.д. чтоб потом в эти пути и копировать нужные файлы |
Отправлено: 22:38, 17-04-2008 | #15 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mitiya:
@echo off SetLocal EnableDelayedExpansion Set $RKEY="HKCU\Software\1C\1Cv7\7.7\Titles" Set $iMAX=0 For /F "Tokens=1,3 Delims= " %%i In ('Reg Query %$RKEY% /s^|Find "REG_SZ"') do ( Set /A $iMAX +=1 Set $PATH=%%i Set $NAME!$iMAX!=%%j Set $PATH!$iMAX!=!$PATH:~4! ) CALL :DISPLAY %$iMAX% EXIT :DISPLAY Set $iNUM=%1 :LOOP @echo. @echo $PATH%$iNUM%=!$PATH%$iNUM%! @echo $NAME%$iNUM%=!$NAME%$iNUM%! Set /A $iNUM-=1 If %$iNUM% GTR 0 GOTO :LOOP GOTO :EOF ) |
|
Отправлено: 02:47, 18-04-2008 | #16 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать вот что у меня получилось .
Там внизу где : echo Выберете базу set /p base= set pathh=dpath%base% echo %pathh% Я пытаюсь сделать что нажав циферку 1 (к примеру) переменная pathh получила значение из переменной dpath1 , я так понял что переменные в переменные вкладывать нельзя , думаю что бы предпринять срсз 1251 if exist "___p1.tmp" del "___p1.tmp" if exist "___n1.tmp" del "___n1.tmp" SetLocal EnableDelayedExpansion Set KEY="HKCU\Software\1C\1Cv7\7.7\Titles" For /F "Tokens=1,3 Delims= " %%i In ('Reg Query %KEY% /s^|Find "REG_SZ"') do ( Set $PATH=%%i Set $NAME=%%j @echo. @echo !$PATH:~4!>> ___p1.tmp @echo !$NAME!>> ___n1.tmp ) SET N=0 for /f "tokens=* eol=" %%A in (___p1.tmp) do SET /A N+=1 set i=0 :again if "%I%" == "%N%" goto x1 if exist "___p2.tmp" del "___p2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (___p1.tmp) do ( if not exist "___p2.tmp" ( Set C=%%A echo "" > ___p2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (___p1.tmp) do ( if not exist "___p2.tmp" ( Set C=%%A echo "" > ___p2.tmp ) ) ) set /A I+=1 SET dpath%I%=%C% goto again :x1 SET N=0 for /f "tokens=* eol=" %%A in (___n1.tmp) do SET /A N+=1 set i=0 :again2 if "%I%" == "%N%" goto end if exist "___n2.tmp" del "___n2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (___n1.tmp) do ( if not exist "___n2.tmp" ( Set C=%%A echo "" > ___n2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (___n1.tmp) do ( if not exist "___n2.tmp" ( Set C=%%A echo "" > ___n2.tmp ) ) ) set /A I+=1 SET dname%I%=%C% goto again2 :end del ___n1.tmp del ___n2.tmp del ___p1.tmp del ___p2.tmp cls echo ____________________ echo # Всего баз : %N% echo ____________________ echo # Список баз : # echo #__________________# set | find "dname" echo Выберете базу set /p base= set pathh=dpath%base% echo %pathh% pause :ditect |
Последний раз редактировалось mitiya, 18-04-2008 в 13:01. Отправлено: 12:21, 18-04-2008 | #17 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mitiya:
Цитата mitiya:
@Echo off SetLocal EnableDelayedExpansion Set $RKEY="HKCU\Software\1C\1Cv7\7.7\Titles" Set $iMAX=0 CHCP 1251 >nul If Exist %~dpn0.tmp DEL /F/Q %~dpn0.tmp For /F "Tokens=1,3 Delims= " %%i In ('Reg Query %$RKEY% /s^|Find "REG_SZ"') do ( Set /A $iMAX +=1 Set $PATH=%%i Set $PATH!$iMAX!=!$PATH:~4! CMD /U/C @Echo !$iMAX!: %%j>>%~dpn0.tmp ) CHCP 866 >nul CALL :DISPLAY Set /P $iBase=Выберите базу: Echo. Echo !$PATH%$iBase%! PAUSE EXIT :DISPLAY :--- CLS Echo ____________________ Echo Всего баз : %$iMAX% Echo ____________________ Echo Список баз: Echo. For /F "Skip=2 Delims=" %%i IN ('CMD /U/C Find /V "ЭТОГО В ТЕКСТЕ НЕ ДОЛЖНО БЫТЬ" %~dpn0.tmp') Do Echo %%i Echo. GOTO :EOF |
||
Отправлено: 12:33, 21-04-2008 | #18 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать У меня руские буквы отображаются кракозяброй, но копируется все правельно .
вот рабочий код : @echo off set templ=c:\ set home=%cd% set chcp1=1251 chcp %chcp1% if exist "%templ%___p1.tmp" del "%templ%___p1.tmp" if exist "%templ%___n1.tmp" del "%templ%___n1.tmp" SetLocal EnableDelayedExpansion Set KEY="HKCU\Software\1C\1Cv7\7.7\Titles" For /F "Tokens=1,3 Delims= " %%i In ('Reg Query %KEY% /s^|Find "REG_SZ"') do ( Set $PATH=%%i Set $NAME=%%j @echo. @echo !$PATH:~4!>> %templ%___p1.tmp @echo !$NAME!>> %templ%___n1.tmp ) SET N=0 for /f "tokens=* eol=" %%A in (%templ%___p1.tmp) do SET /A N+=1 set i=0 :again if "%I%" == "%N%" goto x1 if exist "%templ%___p2.tmp" del "%templ%___p2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (%templ%___p1.tmp) do ( if not exist "%templ%___p2.tmp" ( Set C=%%A echo "" > %templ%___p2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (%templ%___p1.tmp) do ( if not exist "%templ%___p2.tmp" ( Set C=%%A echo "" > %templ%___p2.tmp ) ) ) set /A I+=1 SET dpath%I%=%C% goto again :x1 SET N=0 for /f "tokens=* eol=" %%A in (%templ%___n1.tmp) do SET /A N+=1 set i=0 :again2 if "%I%" == "%N%" goto end if exist "%templ%___n2.tmp" del "%templ%___n2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (%templ%___n1.tmp) do ( if not exist "%templ%___n2.tmp" ( Set C=%%A echo "" > %templ%___n2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (%templ%___n1.tmp) do ( if not exist "%templ%___n2.tmp" ( Set C=%%A echo "" > %templ%___n2.tmp ) ) ) set /A I+=1 SET dname%I%=%C% goto again2 :end del %templ%___n1.tmp del %templ%___n2.tmp del %templ%___p1.tmp del %templ%___p2.tmp cls echo #------------------# echo # Всего баз : %N% echo #------------------# echo # Список баз : # echo #------------------# echo - echo 0=Отменить установку set | find "dname" echo Выберете базу set /p base= if %base% LSS 1 ( set mes=Установка отменена goto off ) if %base% GTR %N% ( set mes=Выбрана неверная база goto off ) set pathh=!dpath%base%! echo %pathh% :ditect find /i "Бухгалтерия" "%pathh%Release.txt" if not %errorlevel%==0 goto off find /i "Упрощенная система налогообложения" "%pathh%Release.txt" if %errorlevel%==0 goto usn find /i "Бухгалтерия для бюджетных учреждений" "%pathh%Release.txt" if %errorlevel%==0 goto budg goto gener :gener echo Общая set vid=General goto ystan :usn echo УСН set vid=Usn goto ystan :budg echo для бюджетных учреждений set vid=budget goto ystan :off cls echo %mes%. pause exit :ystan cd /d reporting for /D %%j in (*) do ( echo %%j mkdir "%pathh%ExtForms\%%j" copy "%home%\reporting\%%j\%vid%\Forms.new\*.exe" "%pathh%ExtForms\%%j" copy "%home%\reporting\%%j\%vid%\Forms.new\ver.id" "%pathh%ExtForms\%%j" cd /d "%pathh%ExtForms\%%j" del /q SETUP_BARCODELIB.EXE for %%i in (*.exe) do echo y | %%i del *.exe ) start %home%\fontinst.exe set mes=Установка успешно завершена goto off |
Отправлено: 10:14, 22-04-2008 | #19 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mitiya:
@Echo off SetLocal EnableDelayedExpansion Set $RKEY="HKCU\Software\1C\1Cv7\7.7\Titles" Set $iMAX=0 CHCP 1251 >nul For /F "Tokens=1,3 Delims= " %%i In ('Reg Query %$RKEY% /s^|Find "REG_SZ"') Do ( Set /A $iMAX +=1 Set $PATH=%%i Set $NAME!$iMAX!=%%j Set $PATH!$iMAX!=!$PATH:~4! ) Set $PATH= CHCP 866 >nul CALL :DISPLAY %$iMAX% Echo. Set /P $iBase=Выберите базу: Echo Путь к выбранной базе : "!$PATH%$iBase%!" Echo. PAUSE Rem Copy *.CMD !$PATH%$iBase%! EXIT :DISPLAY CLS Echo ____________________ Echo Всего баз : %1 Echo ____________________ Echo Список баз: Echo. Set $iNUM=1 :LOOP Echo %$iNUM%: !$NAME%$iNUM%! Set /A $iNUM+=1 If %$iNUM% LEQ %$iMAX% GOTO :LOOP GOTO :EOF |
|
Отправлено: 13:21, 22-04-2008 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как получить имя ветки реестра? | garanov | AutoIt | 11 | 18-12-2009 12:25 | |
VBS/WSH/JS - Как поменять значение реестра? | rromms | Скриптовые языки администрирования Windows | 2 | 16-09-2009 19:01 | |
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH | 13Demon | Скриптовые языки администрирования Windows | 1 | 10-02-2009 09:47 | |
Как создать переменную, имя которой такоеже как значение + несколько латин. символов? | Вебмастеру | 12 | 26-11-2005 10:14 | ||
как определить ip у пользователя , ели знаешь только его имя | djoniAg | Сетевые технологии | 7 | 30-05-2005 19:50 |
|