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

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

Ветеран


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

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


Цитата n5320:
Iska, Ваш вариант работает очень быстро, нагрузка не заметно вообще… »
Не верю. Нагрузка должна быть. Скрипт единовременно потребляет памяти никак не меньше удвоенного объёма файла.

Цитата n5320:
Можете кое что еще поправить в скрипте? Мне надо в начале или в конце выполнения vbs скрипта у всех файлов в папке также удалить в имени (расширении) ".jpg".
Пример Top_gir.7z.001.jpg должно получиться Top_gir.7z.001 »
Стеганографируете помаленьку?

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

Const adTypeBinary = 1
Const adModeWrite = 2
Const adModeRead = 1
Const adSaveCreateOverWrite = 2
Const adReadAll = -1

Const intFileStartPos = 9255


Dim strSourceFolder

Dim objFSO
Dim objFile

Dim objStream4Read
Dim objStream4Write


If WScript.Arguments.Count = 1 Then
	strSourceFolder = WScript.Arguments.Item(0)
	
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FolderExists(strSourceFolder) Then
		For Each objFile In objFSO.GetFolder(strSourceFolder).Files
			If Not StrComp(objFile.Name, WScript.ScriptName, vbTextCompare) = 0 Then
				Set objStream4Read  = WScript.CreateObject("ADODB.Stream")
				Set objStream4Write = WScript.CreateObject("ADODB.Stream")
				
				objStream4Read.Type = adTypeBinary
				objStream4Write.Type = adTypeBinary
				
				objStream4Read.Open
				objStream4Write.Open
				
				objStream4Read.LoadFromFile objFile.Path
				objStream4Read.Position = intFileStartPos
				objStream4Write.Write(objStream4Read.Read(adReadAll))
				objStream4Write.SaveToFile objFile.Path, adSaveCreateOverWrite
				
				objStream4Read.Close
				objStream4Write.Close
				
				Set objStream4Write = Nothing
				Set objStream4Read  = Nothing
			End If
		Next
		
		For Each objFile In objFSO.GetFolder(strSourceFolder).Files
			If StrComp(objFSO.GetExtensionName(objFile.Name), "jpg", vbTextCompare) = 0 Then
				objFile.Name = objFSO.GetBaseName(objFile.Name)
			End If
		Next
	Else
		WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
		WScript.Quit 1
	End If
	
	Set objFSO = Nothing
Else
	WScript.Echo "Usage: " & WScript.ScriptName & " <Source folder>"
	WScript.Quit 1
End If

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

Отправлено: 17:35, 06-02-2015 | #15