|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Надо сделать вывод пути в файл |
|
|
CMD/BAT - Надо сделать вывод пути в файл
|
Старовер Сообщения: 1708 |
Профиль | Отправить PM | Цитировать Привет гуру скриптонаписательства!
Вопрос из раздела - сделайте за меня, но честно - ввод вывод в файлы - не освоил. Есть скрипт допустим для копрования настроек DRWU - с указанием сервера обновлений drweb. Также в папке лежит файл drwu.ini следующего содержания: [DrWU] Language=Russian Boot=1 ...................................... Source=\\Wall\$DWUPd\ ..................... Destination=C:\Documents and Settings\All Users\Application Data\Doctor Web\Bases\ ........... Допустим буду выбирать 1- организация А \\server1\dw\ 2- организация А \\dom1\serv\drw\bases Хотелось бы не меняя структуры файла drwu.ini в зависимости от выбранной организации подставлять соответствующий путь. то есть надо, чтобы параметр Source= в файле drwu.ini менялся из скрипта/ |
|
------- Отправлено: 23:22, 01-12-2009 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Если я правильно понял задачу - перемещение со своим буком по объектам?
@Echo off SetLocal EnableExtensions SetLocal EnableDelayedExpansion del /f %0_tmp rem Список сетевых ресурсов. При добавлении переменная должна называться PthN, где N - номер из меню ниже set INI=drwu.ini set Pth1=\\server1\dw\ set Pth2=\\datacenter\db\anti\drweb\update\ set Pth3=\\dom1\serv\drw\bases\ set Pth4=\\Vasya\D$\DrWebBases\ rem Выбрать место можно через параметр set N=%1 if not "%N%"=="" Goto Check :Menu Echo Мы сейчас находимся в: Echo ======================== Echo. Echo 1) ООО "Дудка" Echo 2) ЗАО "Навоз" Echo 3) Дома Echo 4) В гостях у Васи Пупкина Echo. Echo. set /P N="Укажите номер и [Enter] ^>" :Check Set Pth=!Pth%N%! if "%Pth%"=="" (cls Echo Нет такого пункта меню "%N%" Echo. Goto Menu ) for /f "tokens=1 delims=:" %%N in ('findstr /n /i "source" %INI%') do set N=%%N for /f "tokens=1* delims=" %%L in (%INI%) do ( set L=%%L set /a N-=1 if !N!==0 set L=Source=%Pth% echo !L!>>%0_tmp ) del /f %INI% copy /y %0_tmp %INI% del /f %0_tmp |
------- Отправлено: 14:26, 02-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Прикольно,
Цитата NiOl:
Первый цикл ищет строку с source= А вторая и др ?... |
|
------- Отправлено: 16:34, 02-12-2009 | #3 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать 1. Действительно ищет "source", не просто, а с игнорированием регистра, и выдает номер строки в текстовом файле в %N%
2,3. Цикл выбирает из текстовика все строки 4. Обратный отсчет строк 5. Если это нужная строка, то в ней будет лежать нужный путь 6. Вывод строки во временный файл |
------- Отправлено: 18:40, 02-12-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать если есть возможность в исходном файле переместить строку с переменным параметром в конец файла, то для формирования нужного INI достаточно будет что-нить типа "Echo Source=\\Wall\$DWUPd\ >>drwu.ini"
|
|
Отправлено: 11:25, 03-12-2009 | #5 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать В том то и дело - что нехотелось бы менять порядок параметров в ini файле;
Можно былобы вообще сделать несколько файлов с нужными настройками и в зависимости от выбора копировать нужный - но это же неэстэтично Я думал что есть какая нибудь команда работы с ini файлами как в inf-файлах вроде "Echo \\Wall\$DWUPd\ >>drwu.ini>>Source=" |
------- Отправлено: 15:40, 03-12-2009 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата volk1234:
Цитата volk1234:
|
||
Отправлено: 11:00, 04-12-2009 | #7 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Ок. Попробую. Способ с выводом через >> действительно проще и главное я им пользовался, просто хотелось не менять структуру файла. Но и NiOl спасибо. |
|
------- Отправлено: 12:09, 04-12-2009 | #8 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Только единственный момент таким способом не изменишь существующий INI файл - ведь там уже есть одна запись
Source= получится конфликт путей. |
------- Отправлено: 15:40, 04-12-2009 | #9 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Разделите файл drwu.ini на две части:
- drwu1.ini Цитата volk1234:
Цитата volk1234:
|
||
Отправлено: 16:17, 04-12-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - удалить файл при длинном пути. | Friend | Microsoft Windows 2000/XP | 19 | 17-12-2009 01:22 | |
Прочее - Помогите сделать скрипт <из контейнера AD добавить файл *.dll по определенному пути> | chernikov72 | Программирование и базы данных | 3 | 07-04-2009 20:20 | |
[решено] PHP | Вывод массива в файл | Coutty | Вебмастеру | 2 | 29-10-2008 08:48 | |
Вывод размера папки в отдельный файл скриптом | Whiteee | Microsoft Windows NT/2000/2003 | 1 | 16-07-2008 14:06 | |
Как сделать постраничный вывод? | FADE | Вебмастеру | 7 | 20-07-2004 18:37 |
|