No Windows, como:
is64 abc.exe
1
e
is32 def.exe
1
Enquanto o abc.exe é compilado de 64 bits e o def.exe é de 32 bits no Windows.
No Windows, como:
is64 abc.exe
1
e
is32 def.exe
1
Enquanto o abc.exe é compilado de 64 bits e o def.exe é de 32 bits no Windows.
Respostas:
Existe uma ferramenta de linha de comando para verificar 32 bits ou 64 bits de um exe?
sim
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
O formato PE32 significa Portable Executable 32-bit, enquanto o PE32 + é o formato Portable Executable 64-bit.
Vejo http://gnuwin32.sourceforge.net/packages/file.htm
gostar:
is64 abc.exe
1
Não é exatamente assim.
Você pode usar o -b
opção para excluir o nome do arquivo da saída, então você só precisa de algum kung fu de linha de comando para extrair a primeira palavra (PE32 ou PE32 +) compará-lo com PE32 + e usá-lo em sua declaração "f".
No Windows 10, se você tiver a atualização de aniversário, se ativar o shell bash , você pode abrir um shell bash e usar o file
comando assim
rgb@MYPCNAME:/mnt/c$ file install.exe
install.exe: PE32 executable (GUI) Intel 80386, for MS Windows
ou
rgb@MYPCNAME:/mnt/c/Program Files/Internet Explorer$ file ieinstal.exe
ieinstal.exe: PE32+ executable (GUI) x86-64, for MS Windows
Eu escrevi um par de programas estritamente fazendo o que você pediu (com a adição de mensagens de erro em erros et cetera.) (E, na verdade, é um programa com uma definição que altera seu comportamento para ser perfeitamente preciso, mas isso não importa.)
Você pode encontrá-los no meu Dropbox, Aqui . O código fonte está incluído no pacote, mas você pode descartá-lo se for desnecessário. É basicamente apenas incluído no caso de você não confiar em meus binários.
Exemplo de uso :
>is32 C:\Windows\System32\taskmgr.exe
1
>is64 C:\Windows\System32\taskmgr.exe
0
Basicamente, o programa trabalha primeiro mapeando a memória do binário, depois localizando o cabeçalho do PE e, finalmente, simplesmente comparando o campo Machine com o valor para qualquer arquitetura que você peça. Essencialmente, um processo muito simples.
$ 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 - & gt; Executável Portátil
>
antes de cada linha de uma cota de bloco e blocos de código de recuo com quatro espaços.