nmake - como forçar o comando eco a produzir o caractere da guia?
-
18-09-2019 - |
Pergunta
Como forçar o comando eco a produzir um caractere de guia no ms nmake makefile? As guias literalmente inseridas diretamente em uma string após o comando Echo são removidas pelo Nmake e não aparecem no arquivo de saída.
all :
@echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt
Solução
Você pode usar uma variável com ABA Caracteres. Coloque essas linhas no seu arquivo .bat:
Set TAB =Guia de traço char do seu teclado
eco a%tab%b> yourfile.txt
Fazendo isso, Yourfile.txt terá texto umABAb
Outras dicas
Como solução alternativa, você pode criar um arquivo que contém o caractere da guia, chamado input.txt (não usando o nmake) e depois dizer:
all :
@copy /b input.txt output.txt
Presumo que você já tenha tentado colocar a guia dentro das citações?
all:
@echo "<TAB>" > output.txt
DOS e Windows têm suporte de texto feio em arquivos em lote nativos :).
Aqui está uma boa maneira de executar sua tarefa:
- Instale o interpretador Python
- Escreva um script simples que anexa o personagem com código especificado para arquivar
- Ligue para o script onde quiser :)
Script simples:
'''
append_char.py - appends character with specified code to end of file
Usage: append_char.py filename charcode
'''
import os
import sys
filename = sys.argv[1]
assert os.path.exists(filename)
charcode = int(sys.argv[2])
assert 0 <= charcode <= 255
fh = open(filename, 'ab')
fh.seek(0, os.SEEK_END)
fh.write(chr(charcode))
fh.close()
Usando este script do arquivo em lote, você pode criar qualquer arquivo possível no universo :)
output.txt:
<<output.txt
I WANT TO OUTPUT THE <TAB> CHARACTER HERE!
<<KEEP
<TAB>
Representa um personagem de guia literal aqui, é claro.
Eu tinha a mesma necessidade. Usei a resposta usando as citações ao redor do personagem e dei um passo adiante.
{tab} significa pressionar a tecla da guia do teclado no editor de texto.
Definir tab = "{tab}"
Guia Definir =%Guia: ~ 1,1%
A segunda linha extrai o caractere do meio da sequência citada.
Agora você pode usar a variável % da Tab % com o Echo e, suspeito, em qualquer outro lugar que seja necessário.
Eco %guia %Este texto é recuado, precedido por uma guia.
Eu suspeito que essa técnica também possa ser usada com outros personagens problemáticos.