如何在合并所有子目录中的文件时在批处理中打印换行符?

12 浏览
0 Comments

如何在合并所有子目录中的文件时在批处理中打印换行符?

我需要将一个目录及其子目录中的所有文件合并成一个文件。根据解决方案,我有以下代码(我希望改进...):

Set output="evoc.lua"
Del %output%
(
    Type hoist.lua
    Echo.
    Echo.
    For /r "./src/" %%a in (*.lua) do @(
        type "%%a"
    )
    Echo.
    Echo.
    Type "exec.lua"
) >> %output%

它可以正常工作。现在我需要根据换行符(例如,'\r\n'\n)来区分文件;我尝试使用Echo.,但它只会输出点(完全没有换行)。有解决办法吗?

Set output="evoc.lua"
Del %output%
(
    Type hoist.lua
    Echo.
    Echo.
    For /r "./src/" %%a in (*.lua) do @(
        type "%%a"
        Echo.
    )
    Echo.
    Echo.
    Type "exec.lua"
) >> %output%

0
0 Comments

问题的出现原因是使用echo.命令在批处理文件中打印新行时出现问题。似乎没有完美的解决方案适用于所有情况。

以下是一些可以尝试的替代方法:

Echo/
Echo\
Echo:

不幸的是,这些字符在结果文件中仍然出现。但是在这之后,我想到了使用Lua注释和2个Echo --的方法。你认为有类似line.exe这样的东西,可以打印新行吗?

很高兴能帮到你。恐怕我的批处理编程知识有限。我不知道line.exe是什么。深入研究问题后,我看到有人使用echo[。嗯,我刚刚读到你现在正在使用echo(,而且效果很好。太棒了!

0