In Windows è presente una pagina di informazioni sulla versione in una finestra delle proprietà del file eseguibile / libreria. Come visualizzare tali informazioni in Ubuntu?
In Windows è presente una pagina di informazioni sulla versione in una finestra delle proprietà del file eseguibile / libreria. Come visualizzare tali informazioni in Ubuntu?
Risposte:
Probabilmente dovrai installare un visualizzatore di file PE di terze parti, come http://www.ucware.com/apev/index.htm
Sto lavorando in uno strumento chiamato pev per recuperare informazioni sui file PE dalla riga di comando.
La versione del file può essere recuperata con l' -p
opzione:
pev -p program.exe
pev è disponibile su Ubuntu nel pev
pacchetto .
Dalla gnome-exe-thumbnailer
sceneggiatura, suggerita da Scott Ritchie:
wrestool --extract --raw --type=version inputfile.exe
estrae le informazioni sulla versione, stampando alcuni dati binari mescolati con il testo UTF-16. Lo script lo converte in testo leggibile eseguendo il piping attraverso:
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'
Il comando generale è quindi 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
è fornito dal icoutil
pacchetto che è disponibile come pacchetto Debian standard da tempo.
| hexdump -C
icoutils
pacchetto.
In alternativa all'utilizzo di tr e sed per analizzare l'output della soluzione di @ Mechanical-Snail, ecco una stringa GNU e una versione GNU grep :
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
AGGIORNARE:
Un'altra alternativa è una versione recente di exiftool di Phil Harvey (è basata su perl, facile da installare su Linux se la tua distribuzione non ce l'ha, disponibile anche per Mac e Windows). Ha molte opzioni di formattazione.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67
libimage-exiftool-perl
?
Se installi il gnome-exe-thumbnailer
pacchetto, puoi semplicemente guardare il numero di versione in nautilus
.
Il codice per farlo manualmente è disponibile in /usr/bin/gnome-exe-thumbnailer.sh
Ho appena scoperto come creare un bel dict in pitone con le informazioni (mi guardavo intorno e mi sono ritrovato qui per qualche motivo) e vorrei presentare qui il mio metodo:
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)
Lo sto concedendo in licenza con la licenza del MIT ... chiunque possa sentire la necessità di creare script utili o altre cose con esso ...
E vedi Github Gists - spookyahell / peinfo.py per un esempio di implementazione di questo metodo in un altro script ...