我想在不同的文本线之间插入文本行,例如:
我在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"