Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Автоматическое изменение расширения файла в зависимости от типа (http://forum.oszone.net/showthread.php?t=241485)

mredis@vk 27-08-2012 22:52 1978125

Автоматическое изменение расширения файла в зависимости от типа
 
Есть такая прога как File analyzer она чудесно опредиляет типы файлов даже с неправильным расширением тоесть:
Есть папка(%USERPROFILE%\Downloads\EDiS Downloader\) в которой видео/аудио/архивы и всё это с расширением *.MP3
сделал такой батник:
Код:

Color 70
FA.exe "%USERPROFILE%\Downloads\EDiS Downloader\*.MP3"
pause
exit

после чего появляется список файлов и их параметры

!Вопрос: как сделать чтоб через командную страку автоматически менялось расширение с *.MP3 на то которое соответствует формату... желательно с кодом)

))Камнями не закидывать, реально ни где ни нашел внятного объяснения как это сделать)

Iska 27-08-2012 23:02 1978133

Вы хотя бы ссылку привели на:
Цитата:

Цитата mredis@vk
Есть такая прога как File analyzer »


mredis@vk 27-08-2012 23:30 1978152

FA.RUS
читать дальше »
Код:

            ------------------------------------------------
                    File Analyzer v1.6 (Фев 26, 2000)
                      Copyright (c) Vadim Tarasov
                              Russian Text
            ------------------------------------------------

  =====================================================================
  = Эта программа распространяется по принципу "AS IS", т.е  автор за =
  = последствия от  использования данной программы ответственности не =
  = несет, а в случае модификации тем более. Эта программа является  =
  = FREEWARE, т.е вы можете спокойно использовать эту программу в НЕ  =
  = КОММЕРЧЕСКИХ ЦЕЛЯХ. Если вы собираетесь использовать программу    =
  = в каких либо коммерческих целях вы должны связаться с автором.    =
  =====================================================================


  1. Что такое FA и как его надо использовать :
    File Analyzer - эта программа способная определить чем скомпилирован файл,
    чем упакован, закодирован и т.д, также File Analyzer умеет показывать
    внутренности архивов и SFX архивов, поддерживаемые архивы:
    RAR/ARJ/ZIP/LZH/LHA/ICE/ZOO/SWG/DWC/SQZ/HYP/ACE/CAB/PAC/HA/Stirling/
    /InstallShield
    File Analyzer умеет также выдавать информацию о разных графических
    форматах - разрешение[resolution], количество цветов и т.д, поддерживаемые
    форматы: GIF/JPG/PCX/BMP/ICO/IFF. Понимает также следующие EXE форматы:
    MZ/NE/LE/LX/LE/W3/P2/P3/DL/MP. File Analyzer способен показывать данные
    таблиц объектов NE/LE/LX/PE. Есть также поддержка внешних plugins, для
    чего с версии 1.6.11.02.1999 в инсталляции появился новый файл FA.PLG,
    синтаксис в нем почти такой-же, как в базе данных: путь к plugin + файлы
    на которых FA будет запускать plugin. File Analyzer имеет встроенный
    компилятор базы данных, созданный для увеличения производительности
    программы. В базе данных можно использовать макро-команды типа "J1J1" -
    это означает ассемблерную команду JMP/JMPS/CALL etc, т.е есть возможность
    анализа файла с различными переходами, в настоящее время макро-команды не
    поддерживаются в New-Exe файлах.

  2. Системные требования:
    Минимум для FA требуется:
    * Операционная система DOS 3.0+ [ WIN3.x/WIN9x/NT/NT4/NT5... ]
    * Intel 80286 процессор ( что поделаешь, 286 инструкции )
    * Рекомендуется конечно P-III...
    * 150 kb памяти + размер оверлейного буффера
    ! при анализе оверлеев резервируется память установленная ключом "/o"
    ! FA оптимизирована для работы под MS-Windows, так что под DOS она
      конечно работает, но не так, как бы хотелось.

  3. Как FA анализирует EXE файлы.
    В исполнимых файлах ищется точка входа (регистры CS:IP в заголовке файла,
    если EXE) и сравнивается с сигнатурой в анализаторе. Например файл
    упакованый LZEXE v.0.91 имеет сигнатуру:
-------------------------------------------------------------------------------
                        06            push es
                        0E            push cs
                        1F            pop ds
                        8B 0E .. ..  mov cx,[....]
                        8B F1        mov si,cx
                        4E            dec si
                        89 F7        mov di,si
                        8C DB        mov bx,ds
-------------------------------------------------------------------------------
    и так далее...

    По этой сигнатуре определяется, что файл упакован LZEXE v.0.91. Иногда
    попадаются файлы скомпилированые на неизвестном мне компиляторе или
    упакованы неизвестным упаковщиком. Такие сигнатуры получают имена "Unknown
    compiler ( # )" или "Unknown packer ( # )" и т.д. Если Вы знаете настоящее
    имя пакера или компилятора, то было бы просто замечательно, если бы Вы
    сообщили мне об этом. Если файл упакован несколькими упаковщиками, то
    определяется только "внешний".

  4. О глюках.
    В анализаторе могут быть ошибки, поэтому если Вы обнаружите
    какой-нибудь BUG, то сообщите мне об этом. А ошибок может быть много.
    Так-же приму любые пожелания по улучшению сей программы.
    Пожелания принимаются в любой форме. :))


          Известные глюки:
      1). a) Немного путает версии пакеров. (Если изменений в коде пакера в
          близлежащих версиях не производилось, то цифирка версии немного
          не такая, как на самом деле).
          б) Так как по сигнатуре паскалевские EXE не определяются, добавлено
          внутреннее определение по коду "???456789???", тем самым если даже
          это будет не паскалевский EXE, но в нем будет такой код, он
          определит его как паскалевский. Правда это иногда удобно, т.к даже
          если файл запакован к примеру PKLITE`ом, а он, как мне известно не
          трогает эти байты ===> FA видит эти байты и скажет вам, что файлик
          то упакован, да еще и на Паскале написан...
          в) Некоторые файлы, в имени которых существуют пробелы ( длинные
              имена ), FA не находит
         
      2). Что FA не может.
          FA не умеет определять мутированные ( mutated ) EXE/COM файлы,
          не имеет встроеннного эвристического анализатора.


 ■ Остальные параметры для FA :
         
        /S  - Команда сканирования базы данных и определения точного
                количества поддерживаемых сигнатур при помощи идентификаторов
                типа %Compilers, %Packers - при встрече с этим идетификатором
                FA начинает отсчет сигнатур вложенных в блок следующий за
                этим идентификатором, вы можете добавлять свои собственные
                идентификаторы - это возможно с версии 1.5.07.20.1999.
                Синтаксис: FA.EXE /S. После этого FA создаст файл FA.DIZ, в
                котором будут записаны все блоки и их размер.

        /M  - Эта команда вставляет в заголовок EXE файла другой файл.
                Например - таблица с названием программы. Файл не может быть
                более 64Kb. Синтаксис: FA.EXE /M <Filename.EXE> <Markfile.XXX>

        /R  - Эта команда уничтожает всю ненужную информацию в заголовке
                EXE файла. К примеру вы воспользовались командой /M и вставили
                в заголовок EXE файла какой-то файл, но потом передумали и
                решили его убрать. Синтаксис: FA.EXE /R <Filename.EXE>

        /Oxxx- Размер оверлейного буффера. Параметр xxx может быть от 5 до
                30000 байт. Оверлейный буффер используется для загрузки оверлея
                EXE файла для поиска в нем поддерживаемых упаковщиков.

        /UDF - Разрешить компиляцию вашего собственного копирайта(только reg).
        /SCP - Запретить вывод копирайта ( только reg ).
        /OVR - Запретить сканирование оверлея.
        /PAS - Запретить внутренний определитель кода Turbo Pascal.
        /EXE - Запретить определение файловых расширений.
        /USG - Запретить вывод строки "как пользоваться" при загрузке.
        /TRC - Запретить "обрубание" длинных имен в архивах.
        /SGM - Запретить вывод при загрузке информации о использовании про-
                граммы ( Usage ).
        /DAT - Запретить чтение базы данных и использовать только внутренние
                данные о файле. Это полезно, если надо быстро прочитать соде-
                ржимое архива.
        /EXT - Запретить идентификацию файловых расширений.
        /PLG - Разрешить поддержку внешних plugins. Смотрите файл FA.PLG
        /FLL - Детальный вывода информации о файле.
  /DsbOvr... - Запретить идентификацию SFX архивов "..." : RAR,ZIP,ARJ и
                т.д, надо иметь ввиду, что все архивы FA понимает только по
                трем буквам - например Stirling Archive = STR.


Домашняя страница уже не актуальна

Не обязательно это делать через эту прогу...

Iska 28-08-2012 00:23 1978202

Попробуйте Marco Pontello's Home - Software - TrID.

Вам потребуется сама утилита TrID и текущий набор определений (смотрите секцию Download):



Загрузите оба архива и извлеките из них файлы в какую-либо папку, например «%ProgramFiles%\TrID». Затем выполните из-под командной строки такую команду:
Код:

for /d /r "E:\Песочница\0171" %i in (*.*) do @"%ProgramFiles%\TrID\trid.exe" -ce "%i\*.*"
где вместо «E:\Песочница\0171» укажите путь к Вашему каталогу (наподобие «%USERPROFILE%\Downloads\EDiS Downloader»), а вместо «%ProgramFiles%\TrID» — путь к папке, куда Вы поместили содержимое из загруженных архивов.

Команда должна обработать содержимое и всех вложенных каталогов. Расширение файлов, содержимое которых будет опознано по определениям, будет изменено на наиболее подходящее определение.

mredis@vk 28-08-2012 01:39 1978246

Скачал положил в корень C
в папке (%USERPROFILE%\Downloads\EDiS Downloader\) есть 2 файла EDIS****.UMF (реальные MP3)

запускаю

Код:

for /d /r "%USERPROFILE%\Downloads\EDiS Downloader\" %i in (*.*) do @"C:\trid.exe" -ce "%i\*.*"
и ни чего не происходит...

Iska 28-08-2012 08:16 1978313

Совсем забываю :(. Попробуйте так:
Код:

for /d /r "%userprofile%\Downloads\EDiS Downloader" %i in (.) do @"C:\trid.exe" -ce "%i\*.*"
Приношу Вам свои извинения.

mredis@vk 29-08-2012 23:36 1979542

Всё оказалось куда проще вместо
Код:

for /d /r "%USERPROFILE%\Downloads\EDiS Downloader\" %i in (*.*) do @"C:\trid.exe" -ce "%i\*.*"
надо было банально(и росто) сделать так )))
Код:

C:\trid.exe -ce "%userprofile%\Downloads\EDiS Downloader\*.*"
Iska, Боооольшое спасибо :up

Iska 30-08-2012 03:37 1979588

mredis@vk, ну, если у Вас нет в «%userprofile%\Downloads\EDiS Downloader» вложенных папок (я предположил, что есть) — тогда да, прямо по справке утилиты.


Время: 00:34.

Время: 00:34.
© OSzone.net 2001-