基本上我正在尝试编写批处理文件以将一些代码插入到多个文件中。以下是我要完成的细节:
1.输入字符串来自文件test.txt
2.需要插入字符串作为第二行目标文件
3.目标文件是与批处理文件方向相同的所有.xml文件。
我想我应该使用FOR循环遍历所有.xml文件。像
这样的东西for /f %%i in ('dir /b *.xml') do ()
我已阅读了一些教程和帖子,但无法找到在循环中向文件添加任何内容的方法。使用Echo或TYPE似乎不适用于循环中的每个文件。如何在循环中修改文件?
另外要插入一定数量的行,有些帖子说文件需要放入变量中。但我的文件非常大,我不想把它放到变量中。是否有另一种方法可以插入文件中的某一行?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
FOR /f "delims=" %%i IN ('dir /b *.xml') DO (
SET line2=Y
(
FOR /f "usebackqdelims=" %%x IN ("%%i") DO (
ECHO(%%x
IF DEFINED line2 TYPE Line2.txt
SET "line2="
)
)>"%%~ni.lmx"
)
GOTO :EOF
这应该适合你 - 但它会删除空行。
答案 1 :(得分:0)
@echo off
set /P string=< test.txt
for %%a in (*.xml) do (
(for /F "usebackq tokens=1* delims=:" %%b in ('findstr /N "^" "%%a"') do (
if %%b equ 2 echo %string%
set "line=%%c"
setlocal EnableDelayedExpansion
echo(!line!
endlocal
)) > "%%a.new"
)
新文件的扩展名为.xml.new
;您可以添加几行来删除原始.xml
文件,并将.xml.new
个文件重命名为.xml
。