在不同文本行之间插入文本行



我想在不同的文本线之间插入文本行,例如:

我在Windows 7 x64上运行。

我有一个名为lines2insert.txt的文件,此文件包含数千行的文本,如以下内容:

WRAITH_CAPITALBATTLESHIP                 
WRAITH_CAPITALCARRIER             
WRAITH_CAPITALCOLONY                                                               
WRAITH_CAPITALSIEGE              
WRAITH_CAPITALSUPPORT             
WRAITH_CAPITALTRANSPORT  
WRAITH_CRUISERANTIMODULE                                                                     

我想在此看起来像这样的不同文件上插入两行文本之间的每行文本。

StringInfo  
    ID "IDS_(This is where I want it inserted)_NAME"             
    Value "TODO"
StringInfo  
    ID "IDS_(This is where I want it inserted)_DESCRIPTION"                                   
    Value "TODO"

所以我希望最终结果看起来像这样:

StringInfo  
    ID "IDS_WRAITH_CAPITALBATTLESHIP_NAME  
    Value "TODO"
StringInfo  
ID "IDS_WRAITH_CAPITALBATTLESHIP_DESCRIPTION"  
Value "TODO"

事先感谢,对不起,如果我只是让您感到困惑,我将在将来更加清楚。

i 最好是想要一个带有代码的.bat文件

您的问题令人困惑。如果要两次插入每个字符串,则应在第三次出现替换字符串时发布所需输出的示例。无论如何,我认为这是解决方案:

@echo off
setlocal EnableDelayedExpansion
set "twice="
< Lines2Insert.txt (
   set /P insert=
   for /F "tokens=1* delims=:" %%a in ('findstr /N "^" input.txt') do (
      set "line=%%b"
      if defined line (
         for /F %%i in ("!insert!") do set "lineMod=!line:(This is where I want it inserted)=%%i!"
         if "!line!" neq "!lineMod!" (
            if not defined twice (
               set twice=yes
            ) else (
               set "twice="
               set /P insert=
            )
         )
         echo(!lineMod!
      ) else (
         echo/
      )
   )
) > modFile.txt
move /Y modFile.txt input.txt

使用此文件作为 input.txt

StringInfo
    ID "IDS_(This is where I want it inserted)_NAME"
    Value "TODO"
StringInfo
    ID "IDS_(This is where I want it inserted)_DESCRIPTION"
    Value "TODO"
StringInfo
    ID "IDS_(This is where I want it inserted)_OTHERDATA"
    Value "TODO"

这是结果

StringInfo
    ID "IDS_WRAITH_CAPITALBATTLESHIP_NAME"
    Value "TODO"
StringInfo
    ID "IDS_WRAITH_CAPITALBATTLESHIP_DESCRIPTION"
    Value "TODO"
StringInfo
    ID "IDS_WRAITH_CAPITALCARRIER_OTHERDATA"
    Value "TODO"

最新更新