У Windows є вікно інформації про версію у вікні властивостей виконуваного файлу / бібліотеки. Як переглянути цю інформацію в Ubuntu?
У Windows є вікно інформації про версію у вікні властивостей виконуваного файлу / бібліотеки. Як переглянути цю інформацію в Ubuntu?
Відповіді:
Можливо, вам потрібно встановити сторонній переглядач файлів PE, наприклад, http://www.ucware.com/apev/index.htm
Я працюю в інструменті під назвою pev для отримання інформації про файли PE в командному рядку.
Версію файлу можна отримати за допомогою -p
параметра:
pev -p program.exe
pev доступний на Ubuntu в pev
пакеті .
Зі gnome-exe-thumbnailer
сценарію, запропонованого Скоттом Річі:
wrestool --extract --raw --type=version inputfile.exe
витягує інформацію про версію, друкуючи деякі двійкові дані, змішані з текстом UTF-16. Сценарій перетворює його в читаний текст, пропускаючи його через:
tr '\0, ' '\t.\0' \
| sed 's/\t\t/_/g' \
| tr -c -d '[:print:]' \
| sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'
Загальна команда тоді wrestool --extract --raw --type=version inputfile.exe | tr '\0, ' '\t.\0' | sed 's/\t\t/_/g' | tr -c -d '[:print:]' | sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'
.
wrestool
надається icoutil
пакетом, який доступний як стандартний пакунок Debian з моменту повернення.
| hexdump -C
icoutils
пакета.
Як альтернатива використанню tr і sed для аналізу результатів рішення @ механічного равлика, ось рядок GNU і GNU grep версія:
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
ОНОВЛЕННЯ:
Інша альтернатива - це нещодавня версія exiftool від Phil Harvey (вона заснована на perl, простий в установці на Linux, якщо у вашому дистрибутиві немає, також доступний для Mac та Windows). У ньому багато варіантів форматування.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
libimage-exiftool-perl
?
Якщо ви встановите gnome-exe-thumbnailer
пакет, ви можете просто подивитися номер версії в nautilus
.
Код для цього вручну доступний в /usr/bin/gnome-exe-thumbnailer.sh
Я щойно дізнався про те, як створити приємний диктон пітона з інформацією (я чомусь озирався і завершився тут) і хотів би представити тут свій метод:
Github Gists - spookyahell / exe2version_info.py
'''Licensed under the MIT License :)'''
import pefile
import pprint
pe = pefile.PE('example.exe')
string_version_info = {}
for fileinfo in pe.FileInfo[0]:
if fileinfo.Key.decode() == 'StringFileInfo':
for st in fileinfo.StringTable:
for entry in st.entries.items():
string_version_info[entry[0].decode()] = entry[1].decode()
pprint.pprint(string_version_info)
Я ліцензую його під Ліцензією MIT ... може кожен, хто відчуває потребу в створенні корисних сценаріїв або інших речей з ним ...
І дивіться Github Gists - spookyahell / peinfo.py для прикладу реалізації цього методу в іншому сценарії ...