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

&lt;TAB&gt; 当然在这里代表一个文字制表符。

【讨论】:

【参考方案6】:

我也有同样的需要。我使用字符周围的引号使用了答案,并且更进一步。

tab 表示在文本编辑器中按下键盘的 tab 键。

SET tab="tab"

SET tab=%tab:~1,1%

第二行从引用的字符串中提取中间字符。

现在您可以将 %tab% 变量与 ECHO 一起使用,而且我怀疑它可以用于其他任何需要它的地方。

ECHO %tab%此文本是缩进的,前面有一个制表符。

我怀疑这种技术也可以用于其他问题角色。

【讨论】:

以上是关于nmake - 如何强制 echo 命令输出制表符?的主要内容,如果未能解决你的问题,请参考以下文章

NMAKE:如何强制调试构建? [7ZIP]

linux常用命令 echo输出命令

echo命令

Linux 如何使用echo指令向文件写入内容

Linux命令之输出内容到控制台echo

linuxz终端开启echo颜色显示