Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Чтение строки поочередно, и запись в файл

Ответить
Настройки темы
CMD/BAT - Чтение строки поочередно, и запись в файл

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Форум замечательный, ответил на многие мои вопросы, но возникла задача, с которой не могу никак справится. Есть текстовый файл с данными по строкам (строк каждый раз разное количество), необходимо поочередно брать строки, и записывать их в текстовый файл, при каждом запуске батника, по завершению копирования последней строчки, начать с первой, зациклить. Т.е при каждом запуске батника необходима одна строка из первого списка. Нашел на форуме код счетчика, но подправить его под свои нужды увы, не смог.

Отправлено: 02:45, 15-02-2018

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо, но есть одно но. В OUT.txt добавляются строки, а мне нужно чтобы он заменял первую строку новой. (в OUT.txt должна быть всегда только одна строка)

Отправлено: 14:39, 15-02-2018 | #3


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Супер. Огромное спасибо.

Отправлено: 14:48, 15-02-2018 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Чтение строки поочередно, и запись в файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход