Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование строк из одной файла в другой (http://forum.oszone.net/showthread.php?t=252462)

Kamerad 27-01-2013 16:13 2076116

Копирование строк из одной файла в другой
 
Уважаемые, подскажите. Есть задача скопировать конкретные строки из одного txt файла в конкретное место второго txt файла.
Например взять строки 8-9-10 из файла 1 и вставить заместо строк 20-21-22 файла 2...

Foreigner 27-01-2013 16:37 2076130

Kamerad, С помощью PowerShell
Код:

$a = get-content 1.txt
$b = get-content 2.txt

$b[19] = $a[7]
$b[20] = $a[8]
$b[21] = $a[9]

$b | set-content 2.txt


Kamerad 27-01-2013 16:49 2076143

А при помощи обычно bat файла это можно реализовать?

gora 28-01-2013 09:59 2076663

Цитата:

Цитата Kamerad
помощи обычно bat файла это можно реализовать? »

Код:

@Echo Off
SetLocal EnableDelayedExpansion
:: Файл из которого берем 3 строки (8,9 и 10 строки)
Set infile1=e:\Temp\866.txt
:: Файл из которого берем все строки и заменяем 3 строки (20, 21 и 22)
Set infile2=e:\Temp\log.txt
:: Файл, получаемый после замены 3-х строк
Set newfile=e:\Temp\out.txt

Set cnt=7
For /f "skip=%cnt% usebackq delims=" %%a In ("%infile1%") Do (
        Set /A cnt +=1
        If !cnt! LSS 11 (Set $!cnt!=%%a) Else GoTo _skip
)
:_skip


Set cnt=0
(For /f "usebackq delims=" %%a In ("%infile2%") Do (
        Set /A cnt +=1
        Set line=%%a
        If !cnt!==20 Set line=%$8%
        If !cnt!==21 Set line=%$9%
        If !cnt!==22 Set line=%$10%
        Echo !line!
))>"%newfile%"
Pause>Nul



Время: 03:24.

Время: 03:24.
© OSzone.net 2001-