Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] VBS скрип по редактированию .ORA файла

Ответить
Настройки темы
VBS/WSH/JS - [решено] VBS скрип по редактированию .ORA файла

Новый участник


Сообщения: 15
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip listener.zip
(393 байт, 1 просмотров)
Добрый день Форумчане, есть такой вопрос, можно ли на VBS открыть файл .ORA (в частности listener.ora файл с настройками базы данных oracle XE), сам данный файл можно открыть и отредактировать блокнотом, нужно его открыть и дописать в конец файла некое содержимое. Как это можно сделать на VBS???
Файл есть во вложении.

Отправлено: 08:06, 26-05-2017

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата ospekt00:
дописать в конец файла некое содержимое
Видимо айпишник хоста и имя БД...
Код: Выделить весь код
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile("listner.ora", 8, False)
objFile.Write "blablabla"
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing

Отправлено: 09:33, 26-05-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 15
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо за ответ, а можно ли дописать что то после определенной строки, например после 8 строки от начала файла?

Отправлено: 10:24, 26-05-2017 | #3


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Инжекта строки "на лету", насколько помню, в Васе нет, но это можно преодолеть, скажем, считав файл целиком и разбив его на массив строк с последующей "вставкой" в него нужной строки.

Отправлено: 10:35, 26-05-2017 | #4


Новый участник


Сообщения: 15
Благодарности: 1

Профиль | Отправить PM | Цитировать


Можете показать пример того как это можно сделать?
Заранее благодарю!

Отправлено: 10:38, 26-05-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата ospekt00:
а можно ли дописать что то после определенной строки, »
Дописывать отдельной строкой?

Цитата ospekt00:
например после 8 строки от начала файла? »
Как быть, если строк окажется только, скажем, пять?

Отправлено: 10:55, 26-05-2017 | #6


Новый участник


Сообщения: 15
Благодарности: 1

Профиль | Отправить PM | Цитировать


В данном файле listener.ora строк 23, вообще нужно дописать после 12 строки еще 6 строк. Можно было бы файл заменять полностью, файлом с нужным содержимым, но так как ПК с такими файлами много и имена ПК все разные то либо дописывать нужное после определенной строки, ли переписывать файл полность и по том в нужном месте еще заменять инфу с именем ПК.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:59, 26-05-2017 | #7


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата ospekt00:
Можете показать пример того как это можно сделать?
Честно, Васю практически не использовал, в основном налегал на JScript, решение на котором будет примерно таким:
Код: Выделить весь код
with (new ActiveXObject('Scripting.FileSystemObject')) {
  var file = OpenTextFile('E:\\oracle\\admin\\network\\listner.ora', 1, false),
      arr = file.ReadAll().split('\r\n'),
      ins = [
        '\nстроки, которые должны быть вставлены',
        'могут быть представлены либо в виде',
        'массива строк, либо в виде JSON\n'
      ].join('\n'),
      res = arr.slice(0, 3).join('\n') + ins +
            arr.slice(3, arr.length).join('\n');
  file.Close();
  
  file = OpenTextFile('E:\\oracle\\admin\\network\\listner.ora', 2, false);
  file.Write(res);
  file.Close();
}
Выглядит не очень эстетично, но Вам же пример нужен, а не выхоленный код, верно? Здесь вставка идет начиная с третьей строки. Если будут вопросы, отвечу как освобожусь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:16, 26-05-2017 | #8


Новый участник


Сообщения: 15
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всем большое спасибо за помощь, данную проблему решил заменой файла и далее заменой имени в файле который скопировал на имя ПК.
Получилось что то вот такое:


Dim fso
Const OverWriteFiles = True
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
lsaptPathx = "c:\bat1"
lsoraPathx = "c:\bat"

FSO.CopyFile (lsaptPathx) , (lsoraPathx) & "\", OverWriteFiles

dim objnet
Set objnet = wscript.CreateObject("wscript.network")

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFileLis = objFSO.OpenTextFile("c:\BAT\listener.ora", ForReading)

strText = objFileLis.ReadAll
objFileLis.Close

strOldText = "pcbd"
strNewText = objNet.ComputerName

strNewText = Replace(strText, strOldText, strNewText)

Set objFileLis = objFSO.OpenTextFile("c:\BAT\listener.ora", ForWriting)
objFileLis.WriteLine strNewText
objFileLis.Close

'**************************************************

Последний раз редактировалось ospekt00, 26-05-2017 в 16:13.


Отправлено: 15:45, 26-05-2017 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Выглядит не очень эстетично, »
Зато дёшево надёжно и практично! - YouTube .

На самом деле вполне себе эстетично.
Цитата greg zakharov:
Код: Выделить весь код
      res = arr.slice(0, 3).join('\n') + ins +
            arr.slice(3, arr.length).join('\n');
»
выглядит вполне понятно и наглядно — берём три первых строки, «клеим» к ним вставку, к полученному «клеим» остаток строк.

Отправлено: 22:16, 26-05-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] VBS скрип по редактированию .ORA файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Вопрос по редактированию строк D1kiy Скриптовые языки администрирования Windows 8 22-01-2017 03:09
Система - Помогите найти прогу по редактированию реестра. Polyarnik Программное обеспечение Windows 13 19-02-2010 08:52
Скрипт по редактированию профиля пользователя. GreenIce Microsoft Windows NT/2000/2003 0 29-05-2007 14:01
Вопрос по редактированию страниц в mht Alex Si Вебмастеру 1 13-10-2003 03:20




 
Переход