我想要在日志中添加时间和用户名,但我无法动态评估 %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..!线。
最佳答案
由于您已经使用delayedExpansion:
@echo off
Setlocal DisableDelayedExpansion
set nameDateTime=!USERNAME! !DATE! !TIME!
Setlocal EnableDelayedExpansion
echo %nameDateTime%
echo %nameDateTime%
echo %nameDateTime%
EndLocal
您需要对这些回声进行时间间隔才能看到它们实际上打印不同的值
关于批量动态嵌套环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590457/