批处理文件将特定行从conf文件复制到另一个conf文件

时间:2013-05-20 03:41:13

标签: batch-file

使用批处理文件。

在text1.conf的<username>dynamic_username</username>标记之间是动态用户名字符串。我希望自动选择它并将其复制到另一个文件text2.conf并替换空标记<username>insert here username</username>

text1.conf包含<username>dynamic_username</username>&lt; - 第19行

text2.conf包含<username></username>&lt; - 第10行

提前致谢

2 个答案:

答案 0 :(得分:0)

试试这个:

for /f "tokens=2delims=<>" %%i in ('findstr /i "username" "text1.conf"') do set "string=%%i"
(for /f "delims=" %%i in ('findstr /n "^" "text2.conf"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:*:=!"
    if "!line!" neq "!line:username=!" set "line=%string%"
    echo(!line!
    endlocal
))>"text2.conf.new"

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL
(
FOR /f "delims=" %%i IN (text2.conf) DO (
 IF "%%i"=="<username></username>" (
  FINDSTR /b /e ".*<username>.*</username>.*" <text1.conf
  ) ELSE (ECHO(%%i)
)
)>text2.conf.new

FC text2.conf text2.conf.new

GOTO :eof

虽然会删除空行......