Alexander_88 |
30-08-2014 17:14 2396216 |
Копирование указанного количество блоков из txt файла, начиная с конца
Здравствуйте. Подскажите возможно ли из txt файла, в котором куча блоков текста разделенные через символ //================== скопировать указанное количество последних блоков в другой txt файл, а также после каждого блока добавить тот же символ //==================
Т.е. к примеру у меня txt файл:
//==================
блок1
//==================
блок2
//==================
блок3
//==================
блок4
//==================
........................
//==================
блок5000
//==================
Я указал 5 последних блоков. После применения кода должен получиться такой txt:
блок4996
//==================
блок4997
//==================
блок4998
//==================
блок4999
//==================
блок5000
//==================
:help:
|
Код:
@echo off
set n=5
for /f %%i in ('
find /c "//=================="^<"example.txt"
') do (
set /a n=%%i-%n%
)
for /f "tokens=2 delims=:" %%i in ('
findstr /n \/\/================== "example.txt"^| findstr /n "^"^| findstr "^%n%:"
') do (
more +%%i<"example.txt">"new.txt"
)
exit /b
|
Alexander_88 |
30-08-2014 19:11 2396279 |
что то у меня ничего не происходит, просто черный экран открылся закрылся и все, а файла new нету, в папке создал example.txt и там такой текст:
Код:
//==================
block1
//==================
block2
//==================
block3
//==================
block4
//==================
block5
//==================
n = 2 поставил
спасибо, работает, новый txt просто создал, тот походу в unicode был
|
Alexander_88 |
30-08-2014 20:15 2396300 |
Зря я обрадовался, подставил в свой тхт файл, в итоге, файл new получился просто как копия, искал в чем дело, убирал символы, в итоге выяснилось, что из за символа / происходит, просто там есть ссылки, а также символы а также пустые строки
|
Alexander_88, приведите содержимое файла полностью.
|
Alexander_88 |
30-08-2014 20:54 2396329 |
Код:
jhjhghgjhgjhgjhg, jhfgfgfhghgf
-----------------------------------------------------
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
jhdjkhcwjdckwdc, wjehkwehgjkwehdwjed, wjhfwgweghdwgehgf, wejhfkwjehfkjwehfk
asxasxasx: 45gfgf.mpg
asxasxasx: 434234234
asxasxasx: 00:31:14
asxasxasx: 896.31 MB
uuyyuyyy
(url)http://jhgjhgjhgjj.hgh/fgdgffgdfdgfd...fghhg.avi(/url)
//==================
jhjhghgjhgjhgjhg, jhfgfgfhghgf
-----------------------------------------------------
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
jhdjkhcwjdckwdc, wjehkwehgjkwehdwjed, wjhfwgweghdwgehgf, wejhfkwjehfkjwehfk
asxasxasx: 45gfgf.mpg
asxasxasx: 434234234
asxasxasx: 00:31:14
asxasxasx: 896.31 MB
uuyyuyyy
(url)http://jhgjhgjhgjj.hgh/fgdgffgdfdgfd...fghhg.avi(/url)
//==================
jhjhghgjhgjhgjhg, jhfgfgfhghgf
-----------------------------------------------------
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
(img)http://5s.hghjgjhg.hg/0176gh4/fkhghj...gjb_m.jpg(/img)
jhdjkhcwjdckwdc, wjehkwehgjkwehdwjed, wjhfwgweghdwgehgf, wejhfkwjehfkjwehfk
asxasxasx: 45gfgf.mpg
asxasxasx: 434234234
asxasxasx: 00:31:14
asxasxasx: 896.31 MB
uuyyuyyy
(url)http://jhgjhgjhgjj.hgh/fgdgffgdfdgfd...fghhg.avi(/url)
//==================
он большой, я 3 блока взял
только вместо круглых скобок в тегах , квадратные
и где жирное там (b) тоже через квадратные
|
Цитата:
Цитата Alexander_88
он большой, я 3 блока взял »
|
Вместо:
Цитата:
Цитата Alexander_88
только вместо круглых скобок в тегах , квадратные
и где жирное там (b) тоже через квадратные »
|
— упакуйте Ваш файл в архив и приложите к сообщению. Именно так надо было сделать в самом первом сообщении вместо «к примеру».
|
Alexander_88, проблема скрывалась в непроставленных мной кавычках (кстати, интересная тема: в данном случае знаки равенства необходимо экранировать, или же нужно заключать в кавычки содержащую их строку, если это возможно).
Код:
@echo off
set n=5
for /f %%i in ('
find /c "//=================="^<"example.txt"
') do (
set /a n=%%i-%n%
)
for /f "tokens=2 delims=:" %%i in ('
findstr /n "\/\/==================" "example.txt"^| findstr /n "^"^| findstr "^%n%:"
') do (
more +%%i<"example.txt">"new.txt"
)
exit /b
|
Alexander_88 |
30-08-2014 22:09 2396364 |
упаковал в рар, прикрепил к сообщению
|
Alexander_88 |
30-08-2014 22:16 2396366 |
Georgio, все работает отлично, спасибо вам :)
|
Время: 18:08.
© OSzone.net 2001-