nmake - 如何强制 echo 命令输出制表符?
Posted
技术标签:
【中文标题】nmake - 如何强制 echo 命令输出制表符?【英文标题】:nmake - how to force echo command to output the tab character? 【发布时间】:2009-04-28 17:31:38 【问题描述】:如何强制 echo 命令在 MS nmake makefile 中输出制表符? 在 echo 命令之后直接插入到字符串中的逐字制表符被 nmake 删除,并且不会显示在输出文件中。
all :
@echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt
【问题讨论】:
【参考方案1】:您可以使用带有 TAB 字符的变量。将此行放入您的 .bat 文件中:
set tab=[敲击键盘上的 TAB 字符] echo a%tab%b>yourfile.txt
这样做,yourfile.txt 将包含文本 a[TAB]b
【讨论】:
【参考方案2】:作为一种解决方法,您可以创建一个包含制表符的文件,命名为 input.txt(不使用 nmake),然后说:
all :
@copy /b input.txt output.txt
【讨论】:
【参考方案3】:我假设您已经尝试将标签放在引号内?
all:
@echo "<TAB>" > output.txt
【讨论】:
是的,我已经尝试过了。然后出现制表符,但也出现了我不想要的引号,因为使用 echo 我正在创建另一个 nmake makefile,并且当出现引号时它不起作用。我只需要制表符。知道如何避免在这个场景中输出引号吗?【参考方案4】:DOS 和 Windows 在本机批处理文件中支持丑陋的文本:)。
这是完成任务的好方法:
-
安装 Python 解释器
编写简单的脚本,将带有指定代码的字符附加到文件中
随时随地调用脚本 :)
简单脚本:
'''
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()
使用批处理文件中的此脚本,您可以在 Universe 中创建任何可能的文件 :)
【讨论】:
【参考方案5】:output.txt:
<<output.txt
I WANT TO OUTPUT THE <TAB> CHARACTER HERE!
<<KEEP
<TAB>
当然在这里代表一个文字制表符。
【讨论】:
【参考方案6】:我也有同样的需要。我使用字符周围的引号使用了答案,并且更进一步。
tab 表示在文本编辑器中按下键盘的 tab 键。
SET tab="tab"
SET tab=%tab:~1,1%
第二行从引用的字符串中提取中间字符。
现在您可以将 %tab% 变量与 ECHO 一起使用,而且我怀疑它可以用于其他任何需要它的地方。
ECHO %tab%此文本是缩进的,前面有一个制表符。
我怀疑这种技术也可以用于其他问题角色。
【讨论】:
以上是关于nmake - 如何强制 echo 命令输出制表符?的主要内容,如果未能解决你的问题,请参考以下文章