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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] Скрипт на VBS на проверку содержимого файла и его замене

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


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

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


Добрый день уважаемы Форумчане, помогите пожалуйста со скриптом на VBS.
Требуется прочитать файл - C:\prog\test1.xml и проверить есть ли в нем строка содержащая тег <Server>192.168.0.11</Server>.
Если есть строка содержащая данный тег, то нужно заменить данный файл (C:\prog\test1.xml) файлом - D:\waq\test_new.xml .
Пытался написать скрипт такой:

Const OverWriteFiles = True

Set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set strFile = FSO.OpenTextFile("C:\prog\test1.xml", 1)

strServ = "D:\waq\test_new.xml"
strString = "<Server>192.168.0.11</Server>"

str= strFile.ReadLine ()


if ((str) <> (strString)) = True then
FSO.CopyFile (strServ), "C:\prog\", OverWriteFiles

end if


Но он все время просто копирует файл, постоянно его перезатирая, то есть проверка не работает.
Помогите пожалуйста организовать данный скрипт.
Заранее благодарю!!!

Отправлено: 13:28, 28-02-2017

 

Ветеран


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

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


Цитата ospekt00:
файл - C:\prog\test1.xml »
Образец файла упакуйте в архив и приложите к сообщению.

Цитата ospekt00:
то нужно заменить данный файл (C:\prog\test1.xml) файлом - D:\waq\test_new.xml . »
А может есть вариант проще — что-то заменить/удалить внутри существующего, не?

Отправлено: 13:42, 28-02-2017 | #2



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

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


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


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

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


Вложения
Тип файла: zip test1.zip
(315 байт, 1 просмотров)

Вот архив с файлом, нет к сожалению нужно именно заменять файл на тот который лежит на диске D:\.
Заранее Благодарю.

Последний раз редактировалось ospekt00, 28-02-2017 в 14:03.


Отправлено: 13:56, 28-02-2017 | #3


Ветеран


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

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


Гмм… А почему Вы его обозвали test1.vbs ?

Примерно так:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strSourceFile
Dim strRestoreFile

Dim objFSO


strSourceFile = "C:\prog\test1.xml"
strRestoreFile = "D:\waq\test_new.xml"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strSourceFile) Then
	If objFSO.FileExists(strRestoreFile) Then
		With WScript.CreateObject("Microsoft.XMLDOM")
			.load strSourceFile
			
			If Not .selectSingleNode("/head/Postgre[Server = '192.168.0.11']") Is Nothing Then
				objFSO.CopyFile strRestoreFile, strSourceFile, True
			End If
		End With
	Else
		WScript.Echo "Can't find file for restore [" & strRestoreFile & "]."
		WScript.Quit 2
	End If
Else
	WScript.Echo "Can't find source file [" & strSourceFile & "]."
	WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:20, 28-02-2017 | #4


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


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

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


Огромное Вам спасибо, скрипт работает, но я неправильно поставил задачу немного)),
я написал:
Цитата ospekt00:
Если есть строка содержащая данный тег, то нужно заменить данный файл (C:\prog\test1.xml) файлом - D:\waq\test_new.xml . »
а надо было: Если нет такой стороки...., но я это исправил удалив Not из If Not .selectSingleNode("/head/Postgre[Server = '192.168.0.11']") Is Nothing Then
И все заработало!!!
Может Вы подскажите где есть ресурсы на которых можно почитать про работу VBSа с XML и др. файлами.
Спасибо!!!

Отправлено: 14:58, 28-02-2017 | #5


Ветеран


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

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


Задать запрос в Google вида «vbscript xml» и посмотреть несколько первых ссылок. На русском вкратце можно посмотреть Сценарии объектной модели документа DOM XML средствами OLE-Automation.

Отправлено: 15:18, 28-02-2017 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Можно ли интегрировать, (.Vbs) скрипт в, (.bat) скрипт, и запустить его как "батник" turbolover Скриптовые языки администрирования Windows 1 29-07-2015 00:46
CMD/BAT - Имя файла из его содержимого Sinus Скриптовые языки администрирования Windows 6 26-05-2014 08:00
Любой язык - скрипт на проверку установленого ПО parrabol Скриптовые языки администрирования Windows 10 07-08-2012 11:32
CMD/BAT - [решено] Копирование файла по условию его содержимого XSubZero Скриптовые языки администрирования Windows 3 16-05-2012 17:13
CMD/BAT - [решено] Поиск файла и замена в его содержимого alderv Скриптовые языки администрирования Windows 3 20-08-2011 13:11




 
Переход