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

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

Ответить
Настройки темы
CMD/BAT - [решено] Ведение лога. Нумерация записей. Смещение записи при появлении новой.

Пользователь


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

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


Допустим при запуске компа запускается батник записывающий в file.txt дату запуска (или же дату на момент выполнения батника). Дата просто для примера вместо неё может быть запись(копирование) содержимого файла.
Как выполнить подобные записи в лог file.txt таким образом, чтобы каждая новая запись появлялась на новой строчке?
в идеале получить файл с таким по виду содержанием (информация может быть любой, но сейчас просто на примере даты):

1=20.11.2017
2=21.11.2017
3=23.11.2017
4=24.11.2017
5=25.11.2017

Возможно до 10 строк если пяти мне окажется мало.
Но самое важное перезаписывать последнюю строку, а содержимое смещать вверх на одну строчку, то есть значение 5= переместиться на 4=, а 4= на 3=, в итоге значение 1= исчезает так как устаревает.

Отправлено: 16:49, 20-11-2017

 

Ветеран


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

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


Цитата NLOLegion:
дату запуска (или же дату на момент выполнения батника). »
А что, они как-то различаются?!

Цитата NLOLegion:
Как выполнить подобные записи в лог file.txt таким образом, чтобы каждая новая запись появлялась на новой строчке? »
Отдельной строкой с «echo»:
Код: Выделить весь код
set sLogFile=c:\Temp\MyLog.log

>>"%sLogFile%" echo bla-bla-bla1
>>"%sLogFile%" echo bla-bla-bla2
>>"%sLogFile%" echo bla-bla-bla3
Цитата NLOLegion:
в идеале получить файл с таким по виду содержанием »
Не вижу никакого смысла в «1=», «2=», «3=» и т.д. А какой смысл вкладываете в сие Вы?

Цитата NLOLegion:
Возможно до 10 строк если пяти мне окажется мало.
Но самое важное перезаписывать последнюю строку, а содержимое смещать вверх на одну строчку, »
Зачем Вы хотите организовать такую структуру данных, как очередь?!

И как совместить несовместимое в виде «перезаписывать последнюю строку» и «смещать вверх на одну строчку»?! Либо перезаписывать, либо «выталкивать» первую строку в небытие.

Отправлено: 17:07, 20-11-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


Цитата Iska:
А что, они как-то различаются?! »
Комп и батник всё же могут запускаться в разное время. И вами было упущено что дата для примера.
Цитата Iska:
Отдельной строкой с «echo»: »
Работает, спасибо.
Цитата Iska:
Не вижу никакого смысла в «1=», «2=», «3=» и т.д. А какой смысл вкладываете в сие Вы? »
нумерация необходима для дальнейшей работы. На данном этапе её можно конечно же упустить, а про нумеровать позднее.
Цитата Iska:
очередь?! »
Очередь это самое важное! Возможно это можно как-то реализовать по другому?
Представьте что вам нужно помнить только 5 последних вопросов и по мере их поступления помнить именно 5 последних вопроса. Следовательно ранние надо выбрасывать. Как бы вы Iska, это реализовали?

Отправлено: 07:39, 21-11-2017 | #3


Ветеран


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

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


Цитата NLOLegion:
Комп »
Вот что Вы имели в виду…

Цитата NLOLegion:
нумерация необходима для дальнейшей работы. На данном этапе её можно конечно же упустить, а про нумеровать позднее. »
Это ничего не объясняет.

Цитата NLOLegion:
Очередь это самое важное! Возможно это можно как-то реализовать по другому?
Представьте что вам нужно помнить только 5 последних вопросов и по мере их поступления помнить именно 5 последних вопроса. Следовательно ранние надо выбрасывать. Как бы вы Iska, это реализовали? »
Это зависит как от задачи, так и от обстоятельств, в частности: как поступают новые вопросы, в каком количестве, каково начальное число вопросов (начинаем ли мы с 0 вопросов, или у нас зараз есть их 5 изначально), что мы должны делать со старыми вопросами (в классическом понимании очереди — при чтении с вершины очереди вопрос оттуда должен убираться, у нас, как я понимаю, нет) и т.д.

Проще говоря, мне надо видеть и понимать Вашу задачу, а не тупо пытаться реализовать выбранное Вами её частичное решение в виде очереди.

Отправлено: 11:05, 21-11-2017 | #4


Пользователь


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

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


Iska, задача простая. Компьютер записывает через микрофон всё что может распознать и записывает это в txt файл. Каждый запрос перезаписывает предыдущий. Я их собираю в один лог. вашим методом:

set sLogFile=C:\1\file.txt
set /p ansver=<C:\1\1.txt
>>"%sLogFile%" echo %ansver%

Моя цель создать память, но помнить нужно не все, а 5-10 вопросов. Пока решил остановиться на 5. Нужно их постоянно смещать.
Всё более чем банально - работа с очередью. Sed подобное может сделать, но очень криво и не красиво.

Отправлено: 11:52, 21-11-2017 | #5


Ветеран


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

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


Цитата NLOLegion:
Компьютер записывает через микрофон всё что может распознать и записывает это в txt файл »
Как именно это происходит?

Отправлено: 12:34, 21-11-2017 | #6


Пользователь


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

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


Iska, отправил в гул аудиофайл - получил строчку

Отправлено: 14:36, 21-11-2017 | #7


Ветеран


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

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


NLOLegion, мне, к сожалению, это почти ни о чём не говорит. Вы могли бы пояснить подробно?

Последний раз редактировалось Iska, 21-11-2017 в 16:40. Причина: Добавил пропущенную букву.


Отправлено: 14:52, 21-11-2017 | #8


Пользователь


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

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


set sLogFile=C:\1\file.txt
set /p ansver=<C:\1\1.txt
>>"%sLogFile%" echo %ansver%

В C:\1\1.txt одна строчка. с любым содержанием. Содержание перезаписывается различными батниками. Ну например есть батник который очищает корзину, и после этой очистки он записывает в этот C:\1\1.txt строчку "была очищена корзина".
Это содержание перезаписывается в лог C:\1\file.txt. Надо чтобы хранились Последние 5 записей с сохранением порядка поступления.

Отправлено: 15:04, 21-11-2017 | #9


Ветеран


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

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


NLOLegion,
вы так и не понимаете и сами свою задачу и не понимаете Iska

например этот код
Код: Выделить весь код
@echo off
<file.txt>>tmp (find /n /v ""|>nul find "[5]" && more +1& echo Zapis)& >nul move tmp file.txt
pause
если обнаружит при запуске в файле "file.txt" наличие 5й строки, то удалит первую (самую старую) и допишет фразу "Zapis", которая станет 5й строкой, но этот код не управляет процессом записи, а должен. Он должен давать команду на запись, если строк менее 5ти, а если достигли - удалять первую и дозаписывать. Такое реализовать можно, но надо знать что за строки пишутся, как именно, с какой интенсивностью, по одной или может несколько при этом bat должен всегда дежурить с проверкой или проверять на момент запуска. Как видите и с моей стороны тоже вопросов не один.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:00, 21-11-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Ведение лога запускаемых программ rosalin Скриптовые языки администрирования Windows 12 02-10-2014 13:58
Мультимедиа - ПО для записи с микрофона при появлении звука santey007 Программное обеспечение Windows 4 06-06-2014 20:05
Bandwith/Quota - Windows. Контроль URL, ведение лога в прозрачн.режиме. Чем? Barit Сетевые технологии 2 11-03-2013 11:38
CMD/BAT - [решено] Различные варианты исполнения по выбору. Ведение лога. Kainos Скриптовые языки администрирования Windows 3 11-12-2011 14:10
Установка - при инсталяции Vista Business зависает при появлении ProgressBar. _ib_ Microsoft Windows Vista 5 18-09-2008 05:17




 
Переход