【问题标题】:nmake - how to force echo command to output the tab character?nmake - 如何强制 echo 命令输出制表符?
【发布时间】:2009-04-28 17:31:38
【问题描述】:

如何强制 echo 命令在 MS nmake makefile 中输出制表符? 在 echo 命令之后直接插入到字符串中的逐字制表符被 nmake 删除,并且不会显示在输出文件中。

all :
    @echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt

【问题讨论】:

    标签: echo nmake control-characters


    【解决方案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 在本机批处理文件中支持丑陋的文本:)。

        这是完成任务的好方法:

        1. 安装 Python 解释器
        2. 编写简单的脚本,将带有指定代码的字符附加到文件中
        3. 随时随地调用脚本 :)

        简单脚本:

        '''
        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%此文本是缩进的,前面有一个制表符。

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

            【讨论】:

              猜你喜欢
              • 2014-05-02
              • 1970-01-01
              • 2011-06-20
              • 1970-01-01
              • 2012-07-12
              • 2011-07-26
              • 2022-06-10
              • 2018-11-27
              • 1970-01-01
              相关资源
              最近更新 更多