回答:
32ビットまたは64ビットのexeをチェックするコマンドラインツールはありますか?
はい
c:\Program Files (x86)\GnuWin32\bin>file file.exe
file.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit
c:\Program Files (x86)\GnuWin32\bin>cd ..\..\evernote\evernote
c:\Program Files (x86)\Evernote\Evernote>file evernote.exe
evernote.exe; PE32 executable for MS Windows (GUI) Intel 80386 32-bit
c:\Program Files (x86)\Evernote\Evernote>cd c:\Program Files\Internet Explorer
c:\Program Files\Internet Explorer>file iexplore.exe
iexplore.exe; PE32+ executable for MS Windows (GUI) Mono/.Net assembly
PE32形式はPortable Executable 32-bitの略ですが、PE32 +はPortable Executable 64-bit形式です。
http://gnuwin32.sourceforge.net/packages/file.htmを参照してください
のような:
is64 abc.exe
1
そうではありません。
-b
出力からファイル名を除外するオプションを使用できます。最初の単語(PE32またはPE32 +)を抽出してPE32 +と比較し、それをìf`ステートメントで使用するには、コマンドラインのカンフーが必要です。
Windows 10では、記念日更新がある場合、bashシェルを有効にすると、bashシェルを開いてfile
次のようなコマンドを使用できます
rgb@MYPCNAME:/mnt/c$ file install.exe
install.exe: PE32 executable (GUI) Intel 80386, for MS Windows
または
rgb@MYPCNAME:/mnt/c/Program Files/Internet Explorer$ file ieinstal.exe
ieinstal.exe: PE32+ executable (GUI) x86-64, for MS Windows
私はあなたが要求したことを厳密に行うプログラムのペアを書きました(エラーなどにエラーメッセージを追加しました) )
こちらの Dropboxで見つけることができます。ソースコードはパッケージに含まれていますが、不要な場合は破棄できます。基本的には、私のバイナリを信用しない場合にのみ含まれます。
使用例:
>is32 C:\Windows\System32\taskmgr.exe
1
>is64 C:\Windows\System32\taskmgr.exe
0
基本的に、プログラムは最初にバイナリをメモリマッピングし、次にPEヘッダーを見つけて、最後にMachineフィールドを、必要なアーキテクチャの値と比較するだけで機能します。基本的に非常にシンプルなプロセス。
$ file access-client-win32.exe
access-client-win32.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit
$ file access-client-win64.exe
access-client-win64.exe: PE32+ executable for MS Windows (console) Mono/.Net assembly
win32.exe -> PE32
win64.exe -> PE32+
ps:PE->ポータブル実行可能ファイル
>
ブロック引用の各行の前に山括弧を使用し、コードブロックを4つのスペースでインデントします。