2013-05-20 2 views
0

с использованием командного файла.Пакетный файл копирует определенную строку из файла conf в другой файл conf

между значком <username>dynamic_username</username> text1.conf является динамической строкой имени пользователя. Я хочу, чтобы автоматически выбрать и скопировать его в другой файл text2.conf и заменить пустой тег <username>insert here username</username>

text1.conf содержит <username>dynamic_username</username> < - его по линии 19

text2.conf содержит <username></username> < - его по линии 10

заранее спасибо

ответ

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" 
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 

Удаляет пустые строки, хотя ...

Смежные вопросы