![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удалить строки из тхт файлов, номера которых указаны в другом тхт файле |
|
Любой язык - [решено] Удалить строки из тхт файлов, номера которых указаны в другом тхт файле
|
Ветеран Сообщения: 558 |
Здравствуйте, подскажите, пожалуйста как сделать следующую задачку:
Есть тхт файл iskl.txt, в котором прописаны номера строк (цифры), каждый номер с новой строки.. пример такого файла: Также есть два тхт файла в которых нужно удалить номера строк: fileslink.txt har.txt и еще один тхт файл imagelink.txt в котором нужно удалить две строки, для каждого номера, притом удалять нужно строки, полученные из вычисления.. номер указанный в файле iskl.txt умноженный на 2. (это одна строка на удаление) А также вышестоящую строку. (это вторая строка на удаление). К примеру для номера 3 (указанного в iskl.txt), нужно будет удалить 6ую и 5ую строку. Пример: пусть во всех трех тхт файлах будет один и тот же текст 1строка 2строка 3строка 4строка 5строка 6строка 7строка 8строка 9строка 10строка 11строка 12строка 13строка 14строка 15строка 16строка 17строка После применения скрипта, файлы fileslink.txt и har.txt, должны стать такими: 1строка 4строка 5строка 6строка 7строка 9строка 10строка 11строка 12строка 13строка 14строка 15строка 16строка 17строка Примечания: В тхт файлах может быть любой текст, а не только тот, который я написал. Не должно оставаться пустых строк. Перед удалением строки нужно учитывать оригинальные номера строк, которые были в самом начале. Т.е. НЕ должно получиться так: был файл: и номера удаления 2 и 3. сначала скрипт удалил 2ую строку, но потом не удалил 3ю строку, т.к. после удаления второй в тхт файле осталось лишь две строки и попросту скрипт не нашел третью строку. Такого быть не должно, номера строк должен учитываться из оригинального файла, который еще не отредактирован скриптом. ![]() |
|
Отправлено: 09:10, 14-02-2016 |
Ветеран Сообщения: 1759
|
|
Последний раз редактировалось Foreigner, 14-02-2016 в 10:33. Отправлено: 10:26, 14-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать спасибо, работает, проверил
![]() |
Отправлено: 10:41, 14-02-2016 | #3 |
Забанен Сообщения: 793
|
@echo off setlocal enabledelayedexpansion for /f %%i in (iskl.txt) do set "i=!i!%%i|" set "i=^^[!i:~0,-1!]" call:delStr fileslink.txt call:delStr har.txt set "a=0" for /f %%i in (iskl.txt) do ( if !a! equ 1 set "i=%%i" set /a "a+=1" ) set /a "a=!i!*2" set "i=^^[!i!-!a!]" call:delStr imagelink.txt endlocal exit /b :delStr for /f %%i in ("%1") do set "out=%%~dpni.processed%%~xi" >!out! (findstr /nirc:".*" %1 | findstr /vrc:"!i!") exit /b |
Отправлено: 10:45, 14-02-2016 | #4 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать спасибо, бат тоже нужен, только не пойму, как он работает:
для простого примера создал файлы: fileslink.txt и har.txt такие: и imagelink.txt такой: файл iskl.txt такой: после выполнения скрипта, файлы imagelink.txt, fileslink.txt, har.txt не изменились. Также создались три файла: fileslink.processed.txt, har.processed.txt такие: а также imagelink.processed.txt такой: 1:1 2:2 3:3 5:5 6:6 7:7 8:8 9:9 10:10 11:11 12:12 13:13 14:14 15:15 16:16 17:17 18:18 19:19 20:20 ![]() |
|
Отправлено: 11:21, 14-02-2016 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Заменить ссылки в одном тхт файле, взяв их из другого | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 14-02-2016 09:25 | |
CMD/BAT - [решено] скопировать n последних строк одного тхт файла и вставить их в конец другого тхт файл | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 23-11-2015 16:38 | |
Любой язык - [решено] заменить ссылки из одного тхт на ссылки в другом тхт | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 11-10-2015 16:46 | |
CMD/BAT - поиск новой строки в тхт файле | Xeruvim4ik | Скриптовые языки администрирования Windows | 8 | 17-02-2014 00:51 | |
Любой язык - [решено] из одного тхт файла добавить содержимое во все тхт файлы папки | gangsterovich | Скриптовые языки администрирования Windows | 3 | 06-05-2011 04:29 |
|