我正在腳本化一個大批處理文件。在批處理文件中顯示來自.txt文件的文本
它記錄的日期爲log.txt文件:
@echo off
echo %date%, %time% >> log.txt
echo Current date/time is %date%, %time%.
@pause
exit
它可以多次,記錄它在幾行。現在我想要做的是批處理文件文件顯示log.txt文件中最後記錄的日期/時間。
怎麼樣?
我正在腳本化一個大批處理文件。在批處理文件中顯示來自.txt文件的文本
它記錄的日期爲log.txt文件:
@echo off
echo %date%, %time% >> log.txt
echo Current date/time is %date%, %time%.
@pause
exit
它可以多次,記錄它在幾行。現在我想要做的是批處理文件文件顯示log.txt文件中最後記錄的日期/時間。
怎麼樣?
嗯..只找到了回答。然後我覺得更容易。它只是需要一堆更多的東西:
@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的進入。) (這個問題解決和編輯。)
type log.txt
但是,這會給你整個文件。您可以將其更改爲:
echo %date%, %time% >> log.txt
echo %date%, %time% > log_last.txt
...
type log_last.txt
僅獲取最後一個。
它可以只從log.txt文件而不是最後一行,但上面的那一行?我聽說過FINDSTR的一些事情,但我不想找到它。 – 2009-05-24 10:59:23
我明白你在說什麼,但它應該一次又一次的完成......像100x ......儘可能多的。我想發佈這個,它會非常棒。 – 2009-05-24 11:21:55
如何使用它? – 2009-05-24 11:01:07
tail -1 log.txt – SqlACID 2009-05-24 11:55:21
工程,但是...我現在自己工作,沒有任何額外的工具... – 2009-08-18 12:01:11
的tail.exe試試這個:使用查找通過與「當前日期/時間」的所有行進行迭代,每行寫同一個文件:
for /f "usebackq delims==" %i in (`find "Current date" log.txt`) do (echo %i > log-time.txt)
type log-time.txt
將delims =設置爲與日期/時間線不相關的字符。在批處理文件中使用%%我。
解釋(更新):
查找提取從log.txt中包含搜索字符串的所有行。
對於/ f循環通過每行內部的命令(...
)生成。
回聲>登錄TIME.TXT(單>!)覆蓋每一個它的執行時間登錄TIME.TXT,只有最後一個匹配線保持在數TIME.TXT
這裏有沒有按版本如果log.txt
缺少「T失敗:
@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
好吧,我不知道,當是使用,但是,這裏有兩個snipets你可以使用:
lastlog.cmd
@echo off
for /f "delims=" %%l in (log.txt) do set TimeStamp=%%l
echo %TimeStamp%
更改「回聲..」一行,但最後的日誌時間在%TimeStamp%。沒有臨時文件使用,沒有混亂和可重用,因爲它是在一個變量。
在另一方面,如果你需要知道這一點在你的代碼,而不是從另一個批處理,改變你的日誌記錄:
set TimeStamp=%date%, %time%
echo %TimeStamp% >> log.txt
,使得可變%時間戳%可用後,當你需要它。
一個方便的時間戳格式:
%date:~3,2%/%date:~0,2%/%date:~6,2%-%time:~0,8%
這裏是一個很好的日期和時間碼:
@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
@echo off
set log=%time% %date%
echo %log%
這是一個用於將日期和時間保存爲臨時變量並顯示它的批處理。 匆忙,我沒有時間寫一個腳本來打開一個TXT,也許以後。
正好被設置爲變量的時間和日期,如果這將是東西,這將是一個循環,然後
: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
在fromt的它擺脫了蹩腳的C:/ users/example /的每一件事... ...
and put
cls
之後:top
清除屏幕之前它將新的日期和時間添加到顯示屏
好問題。我昨天剛剛寫了第一篇稍微先進的批處理腳本,我很享受它。批處理腳本很有趣,也是一個非常強大的工具,但我也發現一些簡單的任務非常難以實現。 – 2009-05-24 10:43:13
當然,真正的答案是:如果它需要任何批處理不能用簡單的單行表達式處理的任何內容,只需編寫一個小程序即可。它並沒有傷害;) – viraptor 2009-05-24 21:23:48