ul9
09-11-2013, 01:33
Здравствуйте.
Нуждаюсь в вашей помощи.
Нашла такой скрипт.
Option Explicit
Const ForReading = 1
Const ForWriting = 2
Dim objArgs
Dim objFSO
Dim objFile
Dim strWhatFind
Dim strReplaceBy
Dim strContent
Set objArgs = WScript.Arguments.Named
If objArgs.Count = 4 Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objArgs.Exists("FolderForScan") Then
If objArgs.Exists("FileExtension") Then
If objArgs.Exists("FileWhatFind") Then
If objArgs.Exists("FileReplaceBy") Then
If objFSO.FolderExists(objArgs.Item("FolderForScan")) Then
If objFSO.FileExists(objArgs.Item("FileWhatFind")) Then
If objFSO.FileExists(objArgs.Item("FileReplaceBy")) Then
If objFSO.GetFile(objArgs.Item("FileWhatFind")).Size > 0 Then
With objFSO.OpenTextFile(objArgs.Item("FileWhatFind"), ForReading)
strWhatFind = .ReadAll()
.Close
End With
If objFSO.GetFile(objArgs.Item("FileReplaceBy")).Size > 0 Then
With objFSO.OpenTextFile(objArgs.Item("FileReplaceBy"), ForReading)
strReplaceBy = .ReadAll()
.Close
End With
Else
strReplaceBy = ""
End If
WScript.Echo "Folder for scan: " & objArgs.Item("FolderForScan")
WScript.Echo "File extension: " & objArgs.Item("FileExtension")
WScript.Echo "File what find: " & objArgs.Item("FileWhatFind")
WScript.Echo "File replace by: " & objArgs.Item("FileReplaceBy")
WScript.Echo
ScanSubFolders objFSO.GetFolder(objArgs.Item("FolderForScan"))
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] is zero length"
End If
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] not found"
End If
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] not found"
End If
Else
WScript.Echo "Folder [" & objArgs.Item("FolderForScan") & "] not found"
End If
Else
WScript.Echo "Not found argument <FileReplaceBy>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FileWhatFind>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FileExtension>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FolderForScan>"
Call Usage
End If
Set objFSO = Nothing
Else
Call Usage
End If
Set objArgs = Nothing
WScript.Quit
'=============================================================================
'=============================================================================
Sub ScanSubFolders(objFolder)
Dim objSubFolder
Dim objFile
WScript.Echo "[" & objFolder.Path & "]"
For Each objFile In objFolder.Files
If UCase(objFSO.GetExtensionName(objFile.Name)) = UCase(objArgs.Item("FileExtension")) Then
WScript.Echo " " & objFile.Name
If objFile.Size > 0 Then
With objFSO.OpenTextFile(objFile.Path, ForReading)
strContent = .ReadAll()
.Close
End With
If InStr(1, strContent, strWhatFind, vbTextCompare) > 0 Then
WScript.Echo " Fragment for replace found"
With objFSO.OpenTextFile(objFile.Path, ForWriting)
.Write Replace(strContent, strWhatFind, strReplaceBy)
.Close
End With
End If
End If
End If
Next
WScript.Echo
For Each objSubFolder In objFolder.SubFolders
ScanSubFolders objSubFolder
Next
End Sub
'=============================================================================
'=============================================================================
Sub Usage()
WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " " & _
"/FolderForScan:<folder> " & _
"/FileExtension:<extension> " & _
"/FileWhatFind:<file> " & _
"/FileReplaceBy:<file>"
End Sub
'=============================================================================Он находит точное совпадение из одного файла и меняет на информацию, взятую из другого файла.
Можно его как-нибудь модифицировать, чтобы он искал начало и конец, а всё что в промежутке заменял?
Пример.
<table>
<tr><td class="thead">Панель управления</a></td></tr>
<tr><td class="vbmenu_option">Редактировать подпись</a></td></tr>
<tr><td class="vbmenu_option">Редактировать профиль</a></td></tr>
<tr><td class="vbmenu_option">Настройки форума</a></td></tr>
.......................
.......Какой-то html код..........
.......................
<tr><td class="thead">Разное</td></tr>
<tr><td class="vbmenu_option">Личные сообщения</a></td></tr>
<tr><td class="vbmenu_option">Менеджер подписки</a></td></tr>
<tr><td class="vbmenu_option">Профиль</a></td></tr>
<tr><td class="vbmenu_option">Пользователи в on-line</a></td></tr>
</table>скрипт берёт начало <tr><td class="vbmenu_option">Настройки форума</a></td></tr>
скрипт берёт конец <tr><td class="thead">Разное</td></tr>
заменяет информацию, которая находится между этими строками.
Помогите пожалуйста.
Нуждаюсь в вашей помощи.
Нашла такой скрипт.
Option Explicit
Const ForReading = 1
Const ForWriting = 2
Dim objArgs
Dim objFSO
Dim objFile
Dim strWhatFind
Dim strReplaceBy
Dim strContent
Set objArgs = WScript.Arguments.Named
If objArgs.Count = 4 Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objArgs.Exists("FolderForScan") Then
If objArgs.Exists("FileExtension") Then
If objArgs.Exists("FileWhatFind") Then
If objArgs.Exists("FileReplaceBy") Then
If objFSO.FolderExists(objArgs.Item("FolderForScan")) Then
If objFSO.FileExists(objArgs.Item("FileWhatFind")) Then
If objFSO.FileExists(objArgs.Item("FileReplaceBy")) Then
If objFSO.GetFile(objArgs.Item("FileWhatFind")).Size > 0 Then
With objFSO.OpenTextFile(objArgs.Item("FileWhatFind"), ForReading)
strWhatFind = .ReadAll()
.Close
End With
If objFSO.GetFile(objArgs.Item("FileReplaceBy")).Size > 0 Then
With objFSO.OpenTextFile(objArgs.Item("FileReplaceBy"), ForReading)
strReplaceBy = .ReadAll()
.Close
End With
Else
strReplaceBy = ""
End If
WScript.Echo "Folder for scan: " & objArgs.Item("FolderForScan")
WScript.Echo "File extension: " & objArgs.Item("FileExtension")
WScript.Echo "File what find: " & objArgs.Item("FileWhatFind")
WScript.Echo "File replace by: " & objArgs.Item("FileReplaceBy")
WScript.Echo
ScanSubFolders objFSO.GetFolder(objArgs.Item("FolderForScan"))
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] is zero length"
End If
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] not found"
End If
Else
WScript.Echo "File [" & objArgs.Item("FileWhatFind") & "] not found"
End If
Else
WScript.Echo "Folder [" & objArgs.Item("FolderForScan") & "] not found"
End If
Else
WScript.Echo "Not found argument <FileReplaceBy>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FileWhatFind>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FileExtension>"
Call Usage
End If
Else
WScript.Echo "Not found argument <FolderForScan>"
Call Usage
End If
Set objFSO = Nothing
Else
Call Usage
End If
Set objArgs = Nothing
WScript.Quit
'=============================================================================
'=============================================================================
Sub ScanSubFolders(objFolder)
Dim objSubFolder
Dim objFile
WScript.Echo "[" & objFolder.Path & "]"
For Each objFile In objFolder.Files
If UCase(objFSO.GetExtensionName(objFile.Name)) = UCase(objArgs.Item("FileExtension")) Then
WScript.Echo " " & objFile.Name
If objFile.Size > 0 Then
With objFSO.OpenTextFile(objFile.Path, ForReading)
strContent = .ReadAll()
.Close
End With
If InStr(1, strContent, strWhatFind, vbTextCompare) > 0 Then
WScript.Echo " Fragment for replace found"
With objFSO.OpenTextFile(objFile.Path, ForWriting)
.Write Replace(strContent, strWhatFind, strReplaceBy)
.Close
End With
End If
End If
End If
Next
WScript.Echo
For Each objSubFolder In objFolder.SubFolders
ScanSubFolders objSubFolder
Next
End Sub
'=============================================================================
'=============================================================================
Sub Usage()
WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " " & _
"/FolderForScan:<folder> " & _
"/FileExtension:<extension> " & _
"/FileWhatFind:<file> " & _
"/FileReplaceBy:<file>"
End Sub
'=============================================================================Он находит точное совпадение из одного файла и меняет на информацию, взятую из другого файла.
Можно его как-нибудь модифицировать, чтобы он искал начало и конец, а всё что в промежутке заменял?
Пример.
<table>
<tr><td class="thead">Панель управления</a></td></tr>
<tr><td class="vbmenu_option">Редактировать подпись</a></td></tr>
<tr><td class="vbmenu_option">Редактировать профиль</a></td></tr>
<tr><td class="vbmenu_option">Настройки форума</a></td></tr>
.......................
.......Какой-то html код..........
.......................
<tr><td class="thead">Разное</td></tr>
<tr><td class="vbmenu_option">Личные сообщения</a></td></tr>
<tr><td class="vbmenu_option">Менеджер подписки</a></td></tr>
<tr><td class="vbmenu_option">Профиль</a></td></tr>
<tr><td class="vbmenu_option">Пользователи в on-line</a></td></tr>
</table>скрипт берёт начало <tr><td class="vbmenu_option">Настройки форума</a></td></tr>
скрипт берёт конец <tr><td class="thead">Разное</td></tr>
заменяет информацию, которая находится между этими строками.
Помогите пожалуйста.