在批处理文件中显示.txt文件中的文本

时间:2009-05-24 10:31:33

标签: text batch-file text-files

我正在编写一个大批处理文件。

它将日期记录到log.txt文件中:

@echo off
echo %date%, %time% >> log.txt
echo Current date/time is %date%, %time%.
@pause
exit

它可以在几行上记录几次。现在我想要做的是批处理文件文件显示log.txt文件中最后记录的日期/时间。

如何?

10 个答案:

答案 0 :(得分:28)

type log.txt

但那会给你整个档案。您可以将其更改为:

echo %date%, %time% >> log.txt
echo %date%, %time% > log_last.txt
...
type log_last.txt

只获得最后一个。

答案 1 :(得分:6)

嗯......刚刚找到答案。我认为这比较容易。它只需要更多东西:

@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 :(得分:3)

使用Windows 2003 Resource Kit

中的tail.exe

答案 3 :(得分:1)

试试这个:使用Find以“当前日期/时间”迭代所有行,并将每一行写入同一个文件:

for /f "usebackq delims==" %i in (`find "Current date" log.txt`) do (echo %i > log-time.txt)
type log-time.txt

将delims =设置为与日期/时间行无关的字符。在批处理文件中使用%% i。

说明(更新):

查找从包含搜索字符串的log.txt中提取所有行。

对于/ f循环遍历每一行,内部(...)命令生成。

作为回声> log-time.txt(single>!)每次执行时都会覆盖log-time.txt,只有最后一个匹配的行保留在log-time.txt

答案 4 :(得分:1)

如果缺少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

答案 5 :(得分:1)

好的,我想知道什么时候使用,但是,这里有两个你可以使用的snipets:

lastlog.cmd

@echo off
for /f "delims=" %%l in (log.txt) do set TimeStamp=%%l
echo %TimeStamp%

更改“echo ..”行,但最后一次记录时间在%TimeStamp%之内。没有使用临时文件,没有杂乱和可重用的变量。

另一方面,如果您需要在代码中知道此内容而不是其他批次,请更改您的日志记录:

set TimeStamp=%date%, %time%
echo %TimeStamp% >> log.txt

以便在您需要时可以使用变量%TimeStamp%

答案 6 :(得分:1)

方便的时间戳格式:

%date:~3,2%/%date:~0,2%/%date:~6,2%-%time:~0,8%

答案 7 :(得分:1)

只需将时间和日期设置为变量,如果它将是一个循环然后

: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之后清除屏幕,然后将新的日期和时间添加到显示屏

答案 8 :(得分:0)

这是一个很好的日期和时间代码:

@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

输出:日期是2009年9月27日星期日,当前时间是:3:07

答案 9 :(得分:0)

@echo off
set log=%time% %date%
echo %log%

这是一个用于将日期和时间保存为临时变量并显示它的批处理。 匆忙,我没有时间写一个脚本来打开一个txt,也许以后。