• Windows CMD 输出文本到文件,不加换行符




    >test.txt set /p="Hello" <nul
    >>test.txt set /p=" world!" <nul

    正文

    平时,CMD中输出一个字符串到文本文件,可使用echo,配合输出重定向实现:

    echo "line1" > test.txt
    echo "line2" >> test.txt

    如果要输出的文本很短,这样就可以了。
    但是,CMD命令行的字符串长度最长为2047或8191个字符[1],如果我们要输出的文件超出这个限制要怎么办呢?
    我的思路是,拆分成多个字符串去输出:

    echo "Hello" > test.txt
    echo " world!" >> test.txt

     

    这样有一个问题,echo会自动添加一个换行符和回车符,这并不是我想要的。
    我希望的结果是这样:

     

    我的解决方案:

    >test.txt set /p="Hello" <nul
    >>test.txt set /p=" world!" <nul

    原理:

    开头的>和>>是把输出文件重定向和追加到test.txt。
    最后的<null是把输入重定向为nul,也就是不输入。
    重头戏是中间的 SET /P variable=[promptString] 命令,可以从标准输入输入一个值,保存得到变量variable。
    可选的[promptString]是一个输出到标准输出的提示字符串(原本是输出到命令行窗口,但被我们重定位到了test.txt文件)。
    也就是说,我们并没有使用它设置变量的能力,而是使用了它的提示字符串。

    参考文献

    [1] 命令提示符(cmd.exe)的命令行字符串限制

     



  • 相关阅读:
    6月15日学习日志
    6月14日学习日志
    6月13日学习日志
    6月12日学习日志
    给建民哥的意见
    6月10日学习日志
    6月9日学习日志
    6月8日学习日志
    梦断代码读书笔记3
    第二次冲刺(六)
  • 原文地址:https://www.cnblogs.com/HeviLUO/p/12349169.html
Copyright © 2020-2023  润新知