Estou escrevendo um arquivo em lote do Windows para simplificar a geração de documentação. Sou relativamente novo nisso. Parte disso envolve consultar meu repositório Git para encontrar as duas tags de lançamento mais recentes. Assim que tiver essas tags, a intenção é usar o comando git log e gravar a saída em um arquivo de texto em um diretório diferente.
Posso gravar a saída de um log do git em um arquivo de texto se eu escrever o comando git log com os nomes das tags como constantes. No entanto, quando uso as variáveis que têm os nomes das tags armazenados, só consigo obter a saída visível na janela cmd, e os arquivos de texto produzidos ficam em branco.
A execução com tags conhecidas, conforme abaixo, produzirá tanto na janela de comando quanto em um arquivo de texto
git log --format="%%s" OLD_RELEASE..NEW_RELEASE > "C:\Documentation\Commits.txt"
A saída na janela de comando e o arquivo de texto de saída são mostrados abaixo e estão alinhados com os comentários no git (comentários ruins, eu sei, mas tentei manter essas informações deliberadamente vagas)
V3.1.2.0 19 Sept
V3.1.1.2 6 August
V3.1.1.1 16 July
V3.1.1.1 15 July
V3.1.2.0 14 July
535 indicator added to setup screen
fault 4 severity level reduced from non-threatening
Entretanto, se eu primeiro tiver pesquisado as tags para determinar os dois nomes de tags e defini-los como a variável "OldTag" e "NewTag" e, em seguida, usar o mesmo comando, porém formatado como abaixo, vejo o comando idêntico correto na janela de comando e a lista de mensagens de confirmação, mas o arquivo de texto de saída está em branco.
git log --format="%%s" %OldTag%..%NewTag% > "C:\Documentation\Commits.txt"
Descobri que executar um comando híbrido, onde a segunda variável é usada como um valor fixo, parece funcionar com a saída sendo gravada no arquivo de texto. Portanto, parece que o uso da segunda variável está impedindo a execução do comando de saída.
git log --format="%%s" %OldTag%..NEW_RELEASE > "C:\Documentation\Commits.txt"