1

基本上我正在尝试编写一个批处理文件来将一些代码插入到多个文件中。以下是我要完成的详细信息:
1. 输入字符串来自文件 test.txt。
2. 字符串需要作为目标文件的第二行插入。
3.目标文件是与批处理文件相同方向的所有.xml文件。

我想我应该使用 FOR 循环来遍历所有 .xml 文件。就像是

for /f %%i in ('dir /b *.xml') do ()

我已经阅读了一些教程和帖子,但找不到在循环中向文件添加任何内容的方法。使用 Echo 或 TYPE 似乎不适用于循环中的每个文件。如何循环修改文件?
还要插入一定数量的行,一些帖子说需要将文件放入变量中。但是我的文件非常大,我不想放入变量中。是否有另一种方法可以插入文件中的某一行?

4

2 回答 2

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

这应该对你有用 - 但它会删除空行。

于 2013-07-05T19:55:03.387 回答
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.

于 2013-07-05T21:02:33.697 回答