批量动态嵌套环境变量

标签 dynamic batch-file environment-variables

我想要在日志中添加时间和用户名,但我无法动态评估 %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/

相关文章:

php - 如何为 PHP 设置全局环境变量

c - 加倍动态堆栈数组

android - 动态更新 PhoneGap 应用程序的 dojox EdgeToEdge 列表

java - Windows 批处理文件 - 检查 JAVA_HOME 是否包含 java 7

JMETER_HOME 环境变量未定义

bash - 打印所有环境变量但跳过多行变量

javascript - html5 中的动态 svg

python - django-mutant 在 django-admin 中创建模型

c++ - 使用 ShellExecute C++ 打开长 url

windows - Visual Studio 看不到 System32 中的所有文件