2

時間とユーザー名を先頭に追加してログに記録したいのですが、%TIME% と %DATE% を動的に評価することができませんでした。"!" を使用してさまざまなバージョンを試しましたが、うまくいきませんでした。私が欲しいのは

Setlocal EnableDelayedExpansion
set nameDateTime=!%USERNAME% %DATE% %TIME%!
echo %nameDateTime%
echo %nameDateTime%
echo %nameDateTime%
EndLocal

3つの異なる時間を生成します(それらが十分に離れていると仮定します)。私は 2 番目の答えを試しました: How to create a user Environment variable that *calls* %date% or %time% every time it's invoke? 、ただし、echo %date1% を呼び出すと、date1 だけが出力されますが、set date1 は !date1..! 全体を出力します。ライン。

4

1 に答える 1

4

すでにdelayedExpansionを使用しているため:

@echo off
Setlocal DisableDelayedExpansion
set nameDateTime=!USERNAME! !DATE! !TIME!
Setlocal EnableDelayedExpansion
echo %nameDateTime%
echo %nameDateTime%
echo %nameDateTime%
EndLocal

これらのエコーが実際に異なる値を出力することを確認するには、これらのエコーの時間間隔を設定する必要があります

于 2012-09-25T20:43:40.300 に答える