Execute o arquivo batch do windows a partir do ssh login - env vars missing

1

Estou tentando executar um arquivo em lotes do Windows a partir de um login do ssh. Eu instalei com sucesso o cygwin w / OpenSSH no servidor (windows 2003).

Eu posso fazer login e executar o arquivo, mas o arquivo não é executado corretamente porque depende de uma variável de ambiente. Eu descobri que, por razões de segurança, nem todas as variáveis de ambiente são adicionadas ao shell ssh. Eu adicionei a variável de ambiente que eu preciso (em ~ / .profile), mas o arquivo ainda apresenta erros.
Eu modifiquei o arquivo e tive a saída da variável de ambiente que estava causando problemas antes, e descobri que ainda não estava definido. Portanto, mesmo que eu tenha adicionado a variável de ambiente e ela exista no shell, ela não está disponível no shell no qual o arquivo de lote está sendo executado.

Como eu adicionaria a variável de ambiente ao shell do arquivo de lote?
Modificar o arquivo permanentemente não é uma opção; ele é criado por outro programa, e eu estou tentando escrever um git hook para rodar o arquivo em outra máquina depois de um "git push"

    
por AsherMaximum 10.06.2012 / 18:47

1 resposta

3

Você pode escrever um pequeno script de shell que define a (s) variável (s) de ambiente e, em seguida, executa o arquivo em lote. Por exemplo:

#!/bin/bash
export VAR1="value of VAR1"
export VAR2="value of VAR2"
./script.bat

Este exemplo assume que script.bat está no diretório de trabalho atual e que você tem permissão de execução para ele.

    
por 11.06.2012 / 02:09