как бы добавить в переменные имя ключа реестра и его значение ?
в общем есть ключи реестра
Код:
пытаюсь сделать это командой 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 |
Может, надо netsh interface show interface заменить на что-то типа REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles?
Я его-то не понял... :-/ |
Если да, то можно начать плясать вот от такого:
Код:
@for /f "tokens=1,3" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles ^| find "REG_SZ"') do @echo %%A %%B |
Цитата:
но всеравно получается не то , к примеру пути с program files получаются только до program |
>> к примеру пути с program files получаются только до program
Это из-за использования пробела в качестве разделителя. Это можно решить, используя "звёздочку *" после "tokens=" Например: Код:
@for /f "tokens=1,2*" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\7-zip ^| find "REG_SZ"') do @echo %%A %%C Другое дело, что если пробел может присутствовать и в левой части, в имени ключа (что-то я там у Вас такое вижу). Я изначально предполагал, что этого не будет (если левая часть перейдёт в имя переменной в окружении, то как оно может иметь пробел?). Поэтому я сейчас не смогу ответить, как бы так всё оформить. Может, VBS? Вроде там проще должно быть... |
а почему в качестве разделителя не использовать бы REG_SZ ?
|
>> а почему в качестве разделителя не использовать бы REG_SZ ?
Можно. Только тут один ньюанс. После разбивки через "REG_SZ" вы получите в переменные кучу пробелов, которые как-то нужно убирать... :[ Сравните вывод: Код:
@for /f "tokens=1,2*" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\7-zip ^| find "REG_SZ"') do @echo %%A %%C |
очень странное что-то получается.
после отработки этой сроки (с >> ___1.tmp ) в ___1.tmp получилось вот что Код:
Path C:\Program Files\7-zip Откуда там берется "Application Data" ? я кстати ничего против VBS не имею , просто я ничего вних не понимаю :) |
тут есть еще один подводный камень - русские слова сохранятся крякозябками так как REG выводит в 1251, а CMD использует 866-ю кодировку... поэтому лучше сразу засветить цель всего мероприятия и требования, так как могут потребоваться дополнительные CMD-утилитки... или может действительно перейти на WSH?
|
Да цель мероприятия , сделать скрипт для автоматической установки отчетности в 1с , для этого надо определить пути к базам и их названия . Эти пути есть в реестре , в тех ключах которые я давал в самом начале. В остальном скрипт будет достаточно прост ибо надо просто скопировать нужные файлы в базы.
|
Цитата:
Код:
@echo off |
проблема с кракозяброй решается просто командой
CHCP 1251 так-то вроде все выводит правильно, но только я если честно не совсем понял что тут с переменными , это что-то типа массива что ли ? не могли бы вы немного пояснить код :) , пожалуйста. |
Цитата:
Цитата:
|
mitiya,
но только я если честно не совсем понял что тут с переменными Дык и мы тоже не очень поняли, чего Вы хотите получить в итоге... :] |
В итоге хотелось получить переменные вида :
path1=D:\1c\conf\proekt\ name1=proekt path2=D:\1c\conf\torg\DemoDB\ name2=Конфигурация "Торговля+Склад" Демо и т.д. чтоб потом в эти пути и копировать нужные файлы |
Цитата:
Код:
@echo off |
вот что у меня получилось .
Там внизу где : echo Выберете базу set /p base= set pathh=dpath%base% echo %pathh% Я пытаюсь сделать что нажав циферку 1 (к примеру) переменная pathh получила значение из переменной dpath1 , я так понял что переменные в переменные вкладывать нельзя , думаю что бы предпринять Код:
|
Цитата:
Цитата:
Код:
@Echo off |
У меня руские буквы отображаются кракозяброй, но копируется все правельно .
вот рабочий код : Код:
|
Цитата:
Код:
@Echo off |
а вот это: CHCP 1251 >nul что означает , я имею в виду " >nul " ?
и зачем перименные со знаком $ , что это дает ? |
|
Время: 21:57. |
Время: 21:57.
© OSzone.net 2001-