我想在时间和用户名前加上日志,但我无法动态评估%TIME%和%DATE%。我尝试过使用“!”的许多版本,但我从来没有让它工作过。我想要的是
Setlocal EnableDelayedExpansion
set nameDateTime=!%USERNAME% %DATE% %TIME%!
echo %nameDateTime%
echo %nameDateTime%
echo %nameDateTime%
EndLocal
产生3个不同的时间(假设它们相距足够远)。 我尝试了第二个答案:How to create a user Environment variable that *calls* %date% or %time% each time it's invoked?,但是当我调用echo%date1%时,它只打印出date1,而set date1打印出整个!date1 ..!线。
答案 0 :(得分:4)
由于您已经使用了delayedExpansion:
@echo off
Setlocal DisableDelayedExpansion
set nameDateTime=!USERNAME! !DATE! !TIME!
Setlocal EnableDelayedExpansion
echo %nameDateTime%
echo %nameDateTime%
echo %nameDateTime%
EndLocal
您需要为这些回声留出时间空间,以确定它们实际上会打印不同的值