19

大きなバッチ ファイルのスクリプトを作成しています。

日付を log.txt ファイルに記録します。

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

複数の行で、複数回記録できます。ここでやりたいことは、バッチ ファイル ファイルが、log.txt ファイルから最後に記録された日付/時刻を表示することです。

どのように?

4

10 に答える 10

34
type log.txt

しかし、それでファイル全体が得られます。次のように変更できます。

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

最後の 1 つだけを取得します。

于 2009-05-24T10:34:31.867 に答える
7

うーん..ちょうど答えを見つけました。思ったより簡単です。それはもっとたくさんのものを必要とするだけです:

@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 にランダムな値を入力するだけです。) (この問題は解決され、編集されています。)

于 2009-05-24T11:28:11.837 に答える
3

Windows 2003 リソース キットの tail.exe を使用します。

于 2009-05-24T10:41:35.550 に答える
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 を使用します。

説明 (更新):

Find は、検索文字列を含む log.txt からすべての行を抽出します。

For /f は、( ) 内のコマンドが生成する各行をループします...

echo > log-time.txt (single > !) は、実行されるたびに log-time.txt を上書きするため、最後に一致した行のみが log-time.txt に残ります。

于 2009-05-24T10:58:09.603 に答える
1

便利なタイムスタンプ形式:

%date:~3,2%/%date:~0,2%/%date:~6,2%-%time:~0,8%
于 2009-09-24T12:54:15.597 に答える
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
于 2009-05-24T12:12:16.773 に答える
0
@echo off
set log=%time% %date%
echo %log%

日時を一時変数として保存し、表示するためのバッチです。急いで、txt を開くスクリプトを書く時間がありません。

于 2011-11-22T18:17:31.617 に答える
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 です。

于 2009-09-27T07:08:56.507 に答える