Win Batch,将单行分隔为多行

Win Batch, separate single line to multiple

我有 2 个不同的文本文件。 每个包含一行,包含几个参数 and/or 绝对路径。 每个单个参数 and/or 路径用双引号括起来:

-d"some_param" -d"next_param"
-i"c:\some_path" -i"c:\other_path"

我想把它分成多行,所以一个参数或路径在一行上。我认为插入特定的分隔标记可能会有所帮助,因为其中一个参数或路径可能包含 space。所以我使用 LL_FF 更容易处理。

LL_FF

内容文件 1:

-d"__CHAR_BIT=8"LL_FF -d"__SHRT_BIT=16"LL_FF -d"__INT_BIT=32"LL_FF -d"__LONG_BIT=32"LL_FF -d"CPU_S32K144HFT0VLLT"LL_FF  

内容文件 2:

-i"C:\Users\somePath\s_proc\C_s32k_conf1\inc"LL_FF -i "C:\Users\somePath\s_sysprj\includes\prjIncludes\inc"LL_FF -i"C:\Users\somePath\s_sysprj\can\canDeviceDriver\inc"LL_FF -i"C:\Users\somePath\s_sysprj\hal\clock\inc"LL_FF -i"C:\Users\somePath\s_sysprj\hal\intWatchdog\inc"LL_FF -i"C:\Users\somePath\s_sysprj\hal\timer\inc"LL_FF -i"C:\Users\somePath\s_sysprj\hal\periphery\inc"LL_FF -i"C:\Users\somePath\s_sysprj\os\taskGroupManager\inc"LL_FF -i"C:\Users\somePath\s_sysprj\os\osInterface\inc"LL_FF

我未能编写生成以下输出的批处理文件:

文件 1:

-d"__CHAR_BIT=8"
-d"__SHRT_BIT=16"
-d"__INT_BIT=32"
-d"__LONG_BIT=32"
-d"CPU_S32K144HFT0VLLT"

文件 2:

-i"C:\Users\somePath\s_proc\C_s32k_conf1\inc"
-i"C:\Users\somePath\s_sysprj\includes\prjIncludes\inc"
-i"C:\Users\somePath\s_sysprj\can\canDeviceDriver\inc"
-i"C:\Users\somePath\s_sysprj\hal\clock\inc"
-i"C:\Users\somePath\s_sysprj\hal\intWatchdog\inc"
-i"C:\Users\somePath\s_sysprj\hal\timer\inc"
-i"C:\Users\somePath\s_sysprj\hal\periphery\inc"
-i"C:\Users\somePath\s_sysprj\os\taskGroupManager\inc"
-i"C:\Users\somePath\s_sysprj\os\osInterface\inc"

参数列表中很有可能包含特殊字符,如spaces, *, = 它需要是一个批处理脚本。 有人可以帮我吗?

谢谢和亲切的问候。

我尝试了什么: using replace syntax 由于特殊字符 \r\n

而失败

regarding this 我试过这个:

rem @echo off
SET /p _text=<defines.lnt
echo %_text%
echo
for %%f in ("%_text:LL_FF";"%") do echo aaa %%ff

我成功读取文件,但我没有收到循环的输出。

我也找到了可能有效的解决方案,但对我来说太复杂了,因为我需要很多时间来理解... 因此,我的 post 在这里。

Way to complex

以下是我在评论中提供的代码的批处理文件示例:

@Echo Off
For /F "Delims=" %%A In ('Type File*.txt 2^>Nul') Do For %%B In (%%~A
) Do >>Params.txt Echo %%B

这应该将每个文件 File1.txtFile2.txt 中的行放入一个名为 Params.txt 的新文件中,每个文件都按要求放在不同的行中。