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

Показать сообщение отдельно

Ветеран


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

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


Цитата galclerik:
Подскажите, существует возможность настроить этот скрипт так, чтобы он обрабатывал сразу папку с файлами? »
Нет. Надо переписывать:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strFolder

Dim lngDayOnSeconds
Dim objRegExp
Dim objFile
Dim arrContent
Dim i


If WScript.Arguments.Count = 1 Then
	strFolder = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FolderExists(strFolder) Then
			Randomize Timer
			
			lngDayOnSeconds = 24 * 60 * 60
			
			Set objRegExp = WScript.CreateObject("VBScript.RegExp")
			
			objRegExp.Pattern = "^(\d{2}\|\d{8}\|\d{8})(\d{6})(\|.*)$"
			
			For Each objFile In .GetFolder(strFolder).Files
				If LCase(.GetExtensionName(objFile.Name)) <> "bak" Then
					WScript.Echo objFile.Path
					
					With .OpenTextFile(objFile.Path)
						arrContent = Split(.ReadAll(), vbLf)
						.Close
					End With
					
					For i = LBound(arrContent) To UBound(arrContent)
						If objRegExp.Test(arrContent(i)) Then
							arrContent(i) = objRegExp.Replace(arrContent(i), "$1" & Right("0" & Replace(DateAdd("s", Rnd() * lngDayOnSeconds, 0), ":", ""), 6) & "$3")
						End If
					Next
					
					objFile.Copy .BuildPath(objFile.ParentFolder.Path, .GetBaseName(objFile.Name) & ".bak"), True
					
					With .CreateTextFile(objFile.Path, True)
						.Write Join(arrContent, vbLf)
						.Close
					End With
				End If
			Next
			
			Set objRegExp = Nothing
		Else
			WScript.Echo "Folder [" & strFolder & "] not found."
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Folder>"
	WScript.Quit 1
End If

WScript.Quit 0

Файлы резервных копий «*.bak» пропускаются при обработке папки.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:34, 19-12-2013 | #17