Редактор ресурсов

   English English  Deutsch Deutsch  Русский Русский

главная  программы  resource tuner console  сборник примеров скриптов

Пакетная обработка всех файлов в директории

Этот код демонстрирует использование Resource Tuner Console для одновременной обработки всех исполняемых файлов, находящихся в заданной директории.

RTC ScriptПредлагаемый код скрипта сканирует указанную директорию на наличие файлов с заданным расширением. Затем в каждом найденном файле устанавливается единый язык для всех ресурсов и обновляется Version Information.

Примечание: при копировании кода скрипта, пожалуйста, убедитесь в отсутствии переносов строк внутри команд. Это требование VBScript: каждая команда должна располагаться целиком в одной строке.

'------------------------------------------------------------------------------
'
' Этот скрипт показывает, как пакетно обработать файлы с заданными расширениями 
' (EXE, DLL, SYS, CPL) в указанной директории.
'
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' Процедура ProcessFile
' 
' Назначение:
' 
' Обработка файла: устанавливается единый язык для всех ресурсов и обновляется
' Version Information.
'------------------------------------------------------------------------------

Sub ProcessFile (Src_Path, Dest_Path, File_Name)
  LangID = 1033 ' English-US
  CP     = ScriptUnit.CodePageFromLangID(LangID)
  PEFileProxy.OpenFile Src_Path & File_Name
  If Not PEFileProxy.Terminated Then
    If PEFileProxy.HasResources Then
	
     'Устанавливается единый язык English-US для всех ресурсов
      ResourcesProxy.SetLanguage LangID, DELETE_IF_EXISTS

     'Открываем VersionInfo
      If ResourcesProxy.OpenVersionInfo("1", LangID, CREATE_IF_NOT_EXIST) Then

       'Заполняем цифровые значения FileVersion и ProductVersion 
        VersionInfoProxy.SetFileVersion  2, 0, 1, 122, LangID, True, True, True
        VersionInfoProxy.SetProductVersion 2, 0, 0, 0, LangID, True, True, True
		
       'Изменяем существующую строковую File Version Information
        S1 = "Copyright \0xA9 2017 SuperSoftware Development" 
        S2 = "SuperProg is a trademark of SuperSoftware Development" 
        S3 = "This file modified by Resource Tuner Console" 
        VersionInfoProxy.EditStringFileInfo "LegalCopyright", S1, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "LegalTrademarks", S2, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "Comments", S3, 1049, LangID, True, True
        ResourcesProxy.CloseVersionInfo 
        PEFileProxy.Compile 
        PEFileProxy.SaveAsNewImage Dest_Path & File_Name 
      Else 
        PEFileProxy.PostDebugString "Не могу открыть Version Info..." 
      End If 
    End If 
  End If 
End Sub 
'------------------------------------------------------------------------------ 

'------------------------------------------------------------------------------ 
' 
' The main routine. 
' 
' Вначале сканируется указанная Source директория на наличие файлов EXE, DLL, SYS, CPL.
' Затем, для каждого найденного файла вызывается процедура ProcessFile.
' 
'------------------------------------------------------------------------------ 
Sub Main 
  dim Src_Path, Dest_Path, File_System_Object, Folder_Object, File_Object, File_Collection
  PEFileProxy.UpdateCheckSum = True
  PEFileProxy.CreateBackUp   = False
  ' Указываем путь к Source Folder
  Src_Path = ScriptUnit.CurrentFolder & "src\"
  ' Указываем путь к Destination Folder
  Dest_Path = ScriptUnit.CurrentFolder & "release\"
  ' Сканируем указанную локацию и процессим все найденные файлы.
  set File_System_Object = CreateObject("Scripting.FileSystemObject")
  set Folder_Object      = File_System_Object.GetFolder(src_path)
  set File_Collection    = Folder_Object.Files
  for each File_Object in File_Collection
  ' Получаем расширение файла и переводим все символы в нижний регистр
  ' потому что могут встретится буквы и в верхнем, и в нижнем регистрах
    FL_EXT = LCase(File_System_Object.GetExtensionName(File_Object.name))
  ' Проверяем расширение файла и вызываем процедуру при совпадении с заданным
    If FL_EXT = "exe" or FL_EXT = "dll" or FL_EXT = "sys" or FL_EXT = "cpl" then
      ProcessFile Src_Path, Dest_Path, File_Object.name
      PEFileProxy.PostDebugString "*************************************"
    End If
  Next 
End Sub
'------------------------------------------------------------------------------

Чтобы посмотреть и проверить произведённые изменения в самом EXE файле, мы рекомендуем использовать Resource Tuner GUI, визуальный редактор ресурсов.

Установив Resorce Tuner Console на свой компьютер, вы найдёте папку Demo Scripts в директории с программой. Внутри этой папки находятся 12 папок с примерами скриптов и тестовыми файлами.

Все примеры скриптов готовы к применению. Чтобы запустить выполнение скрипта, выберете соответствующий .BAT файл в любой папке с примером. Resorce Tuner Console произведёт изменения в тестовом EXE файле, находящемся в папке "Src". Результирующий файл будет записан в папку "Release" в директории, содержащей скрипт.

 

Пошаговое руководство по использованию скриптов

 Скачать 60-дневную пробную версию Resource Tuner Console