Отображать текст из TXT файла в пакетном файле
Я создаю сценарий большого командного файла.
Записывает дату в файл log.txt:
@echo off
echo %date%, %time% >> log.txt
echo Current date/time is %date%, %time%.
@pause
exit
Он может записывать его несколько раз, на нескольких строках. Теперь я хочу, чтобы файл командного файла показывал последнюю записанную дату/время из файла log.txt.
Как?
Ответы
Ответ 1
хм.. просто нашел ответ. это было легче, чем я думал. ему просто нужна куча вещей:
@echo off
if not exist log.txt GOTO :write
echo Date/Time last login:
type log.txt
del log.txt
:write
echo %date%, %time%. >> log.txt
@pause
exit
Итак, сначала он считывает файл log.txt и удаляет его. После этого он просто получит новый файл (log.txt) с датой и временем!
Я надеюсь, что это поможет другим людям!
(единственная проблема заключается в том, что первый раз, когда он не работает, но затем просто введите случайное значение в log.txt.)
(Эта проблема решена и отредактирована.)
Ответ 2
type log.txt
Но это даст вам весь файл. Вы можете изменить его на:
echo %date%, %time% >> log.txt
echo %date%, %time% > log_last.txt
...
type log_last.txt
чтобы получить только последний.
Ответ 3
Используйте файл tail.exe из Windows 2003 Resource Kit
Ответ 4
Попробуйте: используйте "Найти", чтобы итератировать по всем строкам с "Текущая дата/время" и записать каждую строку в один и тот же файл:
for /f "usebackq delims==" %i in (`find "Current date" log.txt`) do (echo %i > log-time.txt)
type log-time.txt
Установите разделители = символ, не соответствующий в строках даты/времени. Используйте %% я в пакетных файлах.
Объяснение (обновление):
Найти извлекает все строки из файла log.txt, содержащего строку поиска.
При прохождении /f через каждую строку генерируется команда внутри (...
).
Как echo > log-time.txt(single > !) перезаписывает log-time.txt каждый раз, когда он выполняется, только последняя строка соответствия остается в log-time.txt
Ответ 5
Здесь версия, которая не сбой, если log.txt
отсутствует:
@echo off
if not exist log.txt goto firstlogin
echo Date/Time last login:
type log.txt
goto end
:firstlogin
echo No last login found.
:end
echo %date%, %time%. > log.txt
pause
Ответ 6
Хорошо. Интересно, когда вы используете, но вот два снайпера, которые вы могли бы использовать:
lastlog.cmd
@echo off
for /f "delims=" %%l in (log.txt) do set TimeStamp=%%l
echo %TimeStamp%
Измените строку "echo..", но последнее время журнала находится в пределах % TimeStamp%. Никаких файлов temp не используется, нет беспорядка и многоразового использования, как в переменной.
С другой стороны, если вам нужно знать это WITHIN вашего кода, а не из другого пакета, измените свой журнал для:
set TimeStamp=%date%, %time%
echo %TimeStamp% >> log.txt
чтобы переменная % TimeStamp% использовалась позже, когда вам это нужно.
Ответ 7
Удобный формат временной отметки:
%date:~3,2%/%date:~0,2%/%date:~6,2%-%time:~0,8%
Ответ 8
просто установите время и дату для переменных, если это будет то, что будет в цикле, тогда
:top
set T=%time%
set D=%Date%
echo %T%>>log.txt
echo %d%>>log.txt
echo time:%T%
echo date:%D%
pause
goto top
Я предлагаю сделать его красивым и чистым, поставив
@echo off
из всех вещей, которые он избавляет от дрянной C:/users/example/...
и положив
cls
после :top
, чтобы очистить экран, прежде чем он добавит новую дату и время на дисплей
Ответ 9
Вот хороший код даты и времени:
@echo off
if %date:~4,2%==01 set month=January
if %date:~4,2%==02 set month=February
if %date:~4,2%==03 set month=March
if %date:~4,2%==04 set month=April
if %date:~4,2%==05 set month=May
if %date:~4,2%==06 set month=June
if %date:~4,2%==07 set month=July
if %date:~4,2%==08 set month=August
if %date:~4,2%==09 set month=September
if %date:~4,2%==10 set month=October
if %date:~4,2%==11 set month=November
if %date:~4,2%==12 set month=December
if %date:~0,3%==Mon set day=Monday
if %date:~0,3%==Tue set day=Tuesday
if %date:~0,3%==Wed set day=Wednesday
if %date:~0,3%==Thu set day=Thursday
if %date:~0,3%==Fri set day=Friday
if %date:~0,3%==Sat set day=Saturday
if %date:~0,3%==Sun set day=Sunday
echo.
echo The Date is %day%, %month% %date:~7,2%, %date:~10,4% the current time is: %time:~0,5%
pause
Выходы: Дата - воскресенье, 27 сентября 2009 г. Текущее время: 3:07
Ответ 10
@echo off
set log=%time% %date%
echo %log%
Это пакет для сохранения даты и времени в качестве временной переменной и отображения ее.
В спешке у меня нет времени написать script, чтобы открыть txt, возможно, позже.