Solução para executar outro programa com argumentos especificados no arquivo de configuração estático?

0

Existe uma solução pronta para executar o programa ( vamos chamá-lo de launcher.exe ) com .exe extensão de arquivo ( extensão é importante ) que procura por arquivo de configuração estático , por exemplo launcher.cfg , e lança outro programa especificado no arquivo de configuração.

Ou talvez launcher.exe que executará launcher.cmd ou algum outro script que possa ser usado para passar adiante o controle.

Outra explicação dos requisitos, se isso ainda não estiver claro:

1. O usuário ou algum outro programa lança program.exe
2. program.exe lança program.cmd , que é um script de shell executado por cmd.exe

O importante é que launcher.exe é um programa com a extensão de arquivo .exe e não precisa de argumentos de linha de comando para iniciar outro script ou programa com argumentos de linha de comando.

    
por Sampo Sarrala 11.05.2012 / 12:07

2 respostas

1

Não tenho conhecimento de nenhum programa pronto que faça isso.

Eu tive um pouco de tempo livre, então aqui está um programa C ++ rápido.

#include <cstdlib>
#include <cstdio>
#include <cstring>

#define COMMAND_PRE "call "
#define COMMAND_POST ".bat"

using namespace std;

int main(int argc, char *argv[]) {
    char command[strlen(COMMAND_PRE) + strlen(argv[0]) + strlen(COMMAND_POST) + 1];

    strcpy(command, COMMAND_PRE);
    strcat(command, argv[0]);
    strcat(command, COMMAND_POST);

    printf("Running \"%s\"", command);
    system(command);

    system("pause");
}

É claro que o Norton foi bom o suficiente para chamar isso de alto risco por causa da linha system(command); , que apenas executa um arquivo .bat . Seja como for, não posso ser incomodado ao tentar encontrar um método seguro para antivírus (e a proteção "SONAR" do Norton reage com muita frequência).

Nomeie o programa whatever.exe e ele executará o arquivo whatever.exe.bat . Em outras palavras, ele pegará seu próprio nome de arquivo (e caminho), adicionará .bat ao final e o executará.

Você pode compilar você mesmo a partir da fonte acima. Também forneço um link de download para o programa compilado aqui , mas use a seu próprio risco - ninguém aqui é responsável por o que pode acontecer

    
por 11.05.2012 / 13:13
1

Eu encontrei uma solução alternativa para isso, que eu acho que não é tão boa quanto a resposta de Bob.

No entanto, é uma solução de trabalho e vou publicá-la para referência futura:

.cmd e .bat arquivos podem ser compilados em .exe arquivos ( com algumas limitações ) com batch compiler encontrado em sf.net/projects/batchcompiler .

Desta forma, pode-se escrever um arquivo em lote

start anotherbatch.cmd /arg1 /arg2

E compile isso para batchfile.exe

    
por 11.05.2012 / 13:33