
Tenho um script em lote bastante simples que gostaria de executar usando uma macro em meu sofisticado teclado para jogos. No entanto, o SteelSeries Engine suporta apenas a abertura de um arquivo .exe com os botões macro. Existe alguma maneira de converter o script em um executável simples?
Responder1
Sim, realmente. Não é bonito, mas é limpo (nada para limpar depois) e está integrado ao seu sistema!
Na sua C:\Windows\System32\
pasta existe um arquivo chamado iexpress.exe
.
- Clique com o botão direito em um arquivo
Run as administrator
. - Crie um novo SED e selecione “Extrair arquivos e executar um comando de instalação”.
- Adicione o script desejado e certifique-se de que na próxima tela você defina o programa de instalação para
cmd /c [your_script.bat]
onde [your_script.bat] é o arquivo de script que deseja executar. Se você não fizer isso, o Windows tentará usar o Command.com (a versão antiga do Prompt de Comando), que não é usado há algum tempo. - Selecione preferências (talvez seja necessário selecionar "Armazenar arquivos usando nome de arquivo longo dentro do pacote), definir um caminho de saída (para o arquivo .exe que você deseja criar) e selecionar "Sem reinicialização".
- Clique em próximo e você deverá ter seu .exe!
Apenas uma observação: na verdade, esse arquivo atua apenas como um wrapper para o seu script, e o script em si é executado em uma pasta temporária criada na execução (e excluída posteriormente), portanto, certifique-se de não usar nenhum caminho relativo.
Responder2
Aqui estão 2 programas gratuitos que eu recomendo fortemente para criar EXEs a partir de arquivos em lote
1 - Conversor de morcego para Exe
Você pode usar ambos os programas com GUI simples.
Bat To Exe Converter
suporta também comandos CLI ( \?
sinalizador para ajuda). Exemplo básico da documentação:
Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon
Responder3
Se o software do seu teclado suportar a passagem de argumentos para o executável (o que não é improvável), você não precisará fazê-lo.
cmd.exe /c <path to batchfile>
executaria o arquivo em lote e forneceria um executável válido para nomear o software do teclado. Nenhuma conversão necessária significa que você sempre pode fazer alterações facilmente em seu bastão, sem a necessidade de etapas adicionais.
Responder4
Diferentes versões do Windows têm efeitos diferentes para os mesmos comandos de arquivo em lote, e alguns comandos são limitados a alguns sistemas Windows, por exemplo. findstr
e shutdown
.
Aliás, o Win 10 CMD não permite alterações SETLOCAL
na linha de comando. OK para arquivos em lote.
Veja este link para diferentes comandos para reiniciar diferentes versões do Windows: https://www.computerhope.com/issues/ch000321.htm
Portanto, se você compilasse um script no Win 98 e executasse no Win 8.1, obteria resultados inesperados ou os scripts poderiam nem funcionar. Veja a lista de comandos aqui: https://www.ionos.com/digitalguide/server/know-how/windows-cmd-commands/
Por esse motivo, seria necessário um compilador diferente em cada versão do Windows, de preferência que gerasse código binário (genérico) que pudesse ser executado em tantos chips de CPU quanto possível, com os mesmos conjuntos de instruções. Uma solução alternativa oferecida pela maioria dos programas é agrupar o script em um arquivo exe que desembrulharia e executaria o script quando aberto/executado, por exemplo. Bat_To_Exe_Converter, Bat2Exe, BatchCompiler ou Winzip: https://support.winzip.com/hc/en-us/articles/115011794948-What-is-a-Self-Extracting-Zip-File-
Para resolver esse problema de portabilidade, as máquinas virtuais se tornaram mais populares e, portanto, o surgimento de Java e scripts relacionados.
No entanto, isso ainda seria um código interpretado e não tão rápido quanto o código compilado. Mesmo o código de bytes (código intermediário) de máquinas virtuais ainda precisa ser compilado, mesmo que seja (JIT): https://aboullaite.me/understanding-jit-compiler-just-in-time-compiler/
Resumindo, você pode obter um arquivo exe que conteria um script que seria interpretado pelo processador de comandos, mas não será um arquivo executável nativo, o que significa que não será executado sem um host pelo sistema operacional Windows.