回答:
おそらく、http://www.ucware.com/apev/index.htmなどのサードパーティPEファイルビューアーをインストールする必要があります。
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
パッケージ内にあります。
@ mechanical-snailのソリューションからの出力を解析するために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
更新:
もう1つの代替手段は、Phil Harvey によるexiftoolの最新バージョンです(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
情報を使用して素敵なpython dictを作成する方法を見つけたので(何らかの理由でここを探していました)、ここで私の方法を紹介したいと思います。
'''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を参照してください...