Di Windows ada halaman informasi versi di jendela properti file executable / library. Bagaimana cara melihat info itu di Ubuntu?
Di Windows ada halaman informasi versi di jendela properti file executable / library. Bagaimana cara melihat info itu di Ubuntu?
Jawaban:
Anda mungkin perlu menginstal penampil file PE pihak ketiga, seperti http://www.ucware.com/apev/index.htm
Saya sedang bekerja di alat yang disebut pev untuk mengambil informasi tentang file PE pada baris perintah.
Versi file dapat diambil dengan -popsi:
pev -p program.exe
pev tersedia di Ubuntu dalam pevpaket .
Dari gnome-exe-thumbnailernaskah, disarankan oleh Scott Ritchie:
wrestool --extract --raw --type=version inputfile.exe
mengekstrak informasi versi, mencetak beberapa data biner yang dicampur dengan teks UTF-16. Script mengubahnya menjadi teks yang dapat dibaca dengan memiparnya melalui:
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'
Perintah keseluruhan kemudian 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'.
wrestooldisediakan oleh icoutilpaket yang tersedia sebagai paket standar Debian sejak perjalanan pulang.
| hexdump -C
icoutils paket.
Sebagai alternatif untuk menggunakan tr dan sed untuk mem-parsing output dari solusi @ mechanical-snail, berikut adalah GNU strings dan GNU grep versi:
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
MEMPERBARUI:
Alternatif lain adalah versi terbaru dari exiftool oleh Phil Harvey (ini didasarkan pada perl, mudah dipasang di Linux jika distro Anda tidak memilikinya, juga tersedia untuk Mac dan Windows). Ini memiliki banyak opsi pemformatan.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
libimage-exiftool-perl?
Jika Anda menginstal gnome-exe-thumbnailerpaket, Anda cukup melihat nomor versi di nautilus.
Kode untuk melakukan ini secara manual tersedia di /usr/bin/gnome-exe-thumbnailer.sh
Saya baru tahu sendiri cara membuat dict python yang bagus dengan informasi (saya mencari-cari di sekitar saya dan beberapa alasan di sini) dan ingin mempresentasikan metode saya di sini:
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)
Saya melisensikannya di bawah Lisensi MIT ... siapa pun yang merasa perlu membuat skrip yang bermanfaat atau hal-hal lain dengannya ...
Dan lihat Github Gists - spookyahell / peinfo.py untuk contoh implementasi metode ini di skrip lain ...