|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Чтение строки поочередно, и запись в файл |
|
CMD/BAT - Чтение строки поочередно, и запись в файл
|
Новый участник Сообщения: 5 |
Здравствуйте. Форум замечательный, ответил на многие мои вопросы, но возникла задача, с которой не могу никак справится. Есть текстовый файл с данными по строкам (строк каждый раз разное количество), необходимо поочередно брать строки, и записывать их в текстовый файл, при каждом запуске батника, по завершению копирования последней строчки, начать с первой, зациклить. Т.е при каждом запуске батника необходима одна строка из первого списка. Нашел на форуме код счетчика, но подправить его под свои нужды увы, не смог.
|
|
Отправлено: 02:45, 15-02-2018 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Не очень-то понял задачу
Например такой код будет брать из "file.txt" одну строку по нарастанию при каждом запуске bat и записывать ее в "OUT.txt". Будет создаваться вспомогательный файл "$", его не удалять до конца цикла действий, а вот перед новым циклом, напротив - удалить (можно его создавать и не на виду) @echo off set "f=file.txt" set "f_out=OUT.txt" (if exist $ <$ set /p n=)& set /a n+=1&>$ cmd /v/c echo:!n! <"%f%">>"%f_out%" (for /f "tokens=2 delims=[]" %%a in ('find /n /v ""^|find "[%n%]"') do @echo:%%a) pause>nul Вот с зацикливанием: @echo off set "f=file.txt" set "f_out=OUT.txt" (if exist $ <$ set /p n=)& set /a n+=1&>$ cmd /v/c echo:!n! <"%f%" (for /f "delims=" %%a in ('find /c /v ""') do @set "smax=%%a") <"%f%">>"%f_out%" (for /f "tokens=2 delims=[]" %%a in ('find /n /v ""^|find "[%n%]"') do @echo:%%a) if %n%==%smax% del $ pause>nul |
Последний раз редактировалось alpap, 15-02-2018 в 12:11. Отправлено: 12:04, 15-02-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Огромное спасибо, но есть одно но. В OUT.txt добавляются строки, а мне нужно чтобы он заменял первую строку новой. (в OUT.txt должна быть всегда только одна строка)
|
Отправлено: 14:39, 15-02-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set "FileIn=Z:\Box_In\File.txt" Set "FileOut=Z:\Box_In\FileString.txt Call :WriteCount "%FileIn%" "%FileOut%" "%~nx0" more "%FileOut%" Pause GoTo :Eof :WriteCount Set "Counter=%~dp2%~nx1.%~3.log" If Not Exist "%Counter%" ( >"%Counter%" (Echo 1) FOR /F "usebackq delims=" %%s IN (%1) DO (>"%FileOut%" (Echo %%s) &Exit /B 0) Exit /B 2 ) 3<"%Counter%" (Set /P N=<&3) Set /A NN=%N%+1 FOR /F "usebackq skip=%N% delims=" %%s IN (%1) DO (>"%Counter%" (Echo %NN%) &>"%FileOut%" (Echo %%s) &Exit /B 0) Del "%Counter%" GoTo :WriteCount GoTo :Eof |
------- Отправлено: 14:40, 15-02-2018 | #4 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Супер. Огромное спасибо.
|
|
Отправлено: 14:48, 15-02-2018 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Чтение указанной строки и разбив на отдельные символы и запись их в отдельные меремен | angel_lyucifer | Скриптовые языки администрирования Windows | 0 | 10-05-2015 20:48 | |
[решено] Чтение строк из лога и запись их в файл | support23 | AutoIt | 5 | 18-10-2012 12:04 | |
VBS/WSH/JS - [решено] Чтение и запись в файл | Dt83 | Скриптовые языки администрирования Windows | 6 | 25-07-2011 14:29 | |
CMD/BAT - [решено] определение оборудования из коммандной строки и запись в отчета файл | RedX | Скриптовые языки администрирования Windows | 3 | 14-07-2010 09:33 | |
.NET - Запись настроек программы в файл txt и чтение этих настроек обратно | ProgrammerPC | Программирование и базы данных | 4 | 11-12-2009 10:46 |
|