nmake - comment forcer commande echo à la sortie le caractère de tabulation?
-
18-09-2019 - |
Question
Comment forcer commande echo à la sortie d'un caractère de tabulation dans le makefile de MS? Verbatim onglets insérés à droite dans une chaîne après la commande echo sont éliminés par nmake et ne se présentent pas dans le fichier de sortie.
all :
@echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt
La solution
Vous pouvez utiliser une variable char. Mettez ces lignes dans votre fichier .bat:
onglet jeu = [coup TAB char de votre clavier]
un écho% à onglet% b> yourfile.txt
Ce faisant, yourfile.txt aura texte [TAB] b
Autres conseils
Pour contourner ce problème, vous pouvez créer un fichier contenant le caractère de tabulation, input.txt nommé (ne pas utiliser nmake), puis dire:
all :
@copy /b input.txt output.txt
Je suppose que vous avez déjà essayé de mettre l'onglet entre guillemets?
all:
@echo "<TAB>" > output.txt
DOS et Windows ont un support de texte laid dans des fichiers batch natifs:)
.Voici belle façon de faire votre tâche:
- installer Python interpretator
- écriture simple script qui ajoute caractère avec le code spécifié dans le fichier
- script appel chaque fois que vous voulez:)
Script simple:
'''
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()
en utilisant ce script à partir du fichier batch, vous pouvez créer un fichier possible dans l'univers:)
output.txt:
<<output.txt
I WANT TO OUTPUT THE <TAB> CHARACTER HERE!
<<KEEP
<TAB>
représente un caractère de tabulation littérale ici bien sûr.
J'ai eu le même besoin. J'ai utilisé la réponse en utilisant les guillemets autour du caractère et juste pris un peu plus loin.
{onglet} signifie appuyer sur l'onglet clavier clé dans l'éditeur de texte.
onglet SET = "{tab}"
onglet SET =% tab: ~ 1,1%
La deuxième ligne extrait le caractère du milieu de la chaîne entre guillemets.
Maintenant, vous pouvez utiliser l'onglet% variable% avec ECHO et, je pense, nulle part ailleurs, il est nécessaire.
ECHO% onglet% Ce texte est en retrait, précédé d'un onglet.
Je soupçonne que cette technique pourrait être utilisée avec d'autres personnages de problème ainsi.