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

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

Ветеран


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

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


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

Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2


Dim strSourceFolder

Dim objFile


If WScript.Arguments.Count = 1 Then
	strSourceFolder = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FolderExists(strSourceFolder) Then
			For Each objFile In .GetFolder(strSourceFolder).Files
				Select Case LCase(.GetExtensionName(objFile.Name))
					Case "jpg", "jpeg", "jpe"
						With WScript.CreateObject("ADODB.Stream")
							.Type = adTypeBinary
							.Open
							
							.LoadFromFile objFile.Path
							
							.Position = objFile.Size - 1
							
							If AscB(MidB(.Read(1), 1, 1)) = &H0A Then
								.Position = objFile.Size - 1
								.SetEOS
								
								.SaveToFile objFile.Path, adSaveCreateOverWrite
							End If
							
							.Close
						End With
					Case Else
						' Nothing to do
				End Select
			Next
		Else
			WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage: " & WScript.ScriptName & " <Source folder>"
	WScript.Quit 1
End If

WScript.Quit 0

Достаточно просто перетащить целевую папку на скрипт. Будут найдены все файлы в этой папке с расширениями "jpg", "jpeg", "jpe", и, если содержимым их последнего байта окажется «0x0A» — они будут урезаны по размеру на этот последний байт. Вложенные папки не обрабатываются. Резервных копий исходных файлов не делается.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:02, 02-12-2014 | #2