Batch file 使用批处理文件添加一行文本

Batch file 使用批处理文件添加一行文本,batch-file,Batch File,我是批处理文件的新手,在拼凑最后的步骤时遇到困难。我的目标纯粹是在两行文本之间插入“Test4”。文本从不更改,始终为第1行和第3行(文本文件中第2行为空)。代码删除第2行(空白),但不插入文本 当前txt文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ProductDataeXchangePackage [ 1 2 3 >test.txt Echo%%a>>test.txt 设置p=%%a ) del i

我是批处理文件的新手,在拼凑最后的步骤时遇到困难。我的目标纯粹是在两行文本之间插入“Test4”。文本从不更改,始终为第1行和第3行(文本文件中第2行为空)。代码删除第2行(空白),但不插入文本

当前txt文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE ProductDataeXchangePackage [
1 
2 
3 

>test.txt
Echo%%a>>test.txt
设置p=%%a
)
del in.tmp

一种方法可以做到这一点

rem Saved in D:\Temp\WriteText.bat
@echo off
setlocal enabledelayedexpansion
ren test.txt in.tmp
set /p line1=<in.tmp
>test.txt echo %line1%
>>test.txt Echo Test4
for /f "skip=1 delims=" %%a in (in.tmp) do >>test.txt Echo %%a
del in.tmp
rem保存在D:\Temp\WriteText.bat中
@回音
延迟扩展
ren test.txt in.tmp
设置/p line1=test.txt回显%line1%
>>test.txt Echo Test4
对于/f“skip=1 delims=”%a in(in.tmp)do>>test.txt Echo%%a
del in.tmp
@echo off
setlocal EnableDelayedExpansion
ren test.txt in.tmp
test.txt
REM del in.tmp
编辑:添加了输出示例

C:\>type test.txt
测试蝙蝠
C:\>type test.txt
测试4

它删除了我原来的text.txt文件。不确定删除前它是否有效。@user3158712,您的代码中没有名为text.txt的文件,我的代码中也没有。但是,如果您指的是test.txt,那么当然。您正在将test.txt重命名为in.tmp。很抱歉造成混淆。我的意思是test.txt;但是,我不想将test.txt重命名为in.tmp,只需在第1行()和第3行之间的第2行中插入“test4”(@user3158712,您必须创建一个临时文件。批处理无法就地编辑文件。它添加了新行,但没有复制其余的行。@Squashman:查看如何将其复制到in.tmp到test.txt的其余行上?请检查数据。此方法按预期工作…编辑:我刚刚测试了它!cmd屏幕也保持不变。唯一的方法是关闭它就是点击x。你的想法是什么?
rem Saved in D:\Temp\WriteText.bat
@echo off
setlocal enabledelayedexpansion
ren test.txt in.tmp
set /p line1=<in.tmp
>test.txt echo %line1%
>>test.txt Echo Test4
for /f "skip=1 delims=" %%a in (in.tmp) do >>test.txt Echo %%a
del in.tmp
@echo off
setlocal EnableDelayedExpansion

ren test.txt in.tmp
< in.tmp (

   set /P "line1="
   echo !line1!

   set /P "line2="
   echo Test4

   rem Copy the rest of lines
   findstr "^"

) > test.txt
REM del in.tmp
C:\> type test.txt
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE ProductDataeXchangePackage [
1
2
3

C:\> test.bat

C:\> type test.txt
<?xml version="1.0" encoding="UTF-8" ?>
Test4
<!DOCTYPE ProductDataeXchangePackage [
1
2
3