如何在批处理中获取系统长格式日期时间或统一robocopy输出格式?
批处理与Robocopy日期时间格式统一解决方案
一、直接获取系统长格式日期时间
Windows批处理没有内置的%LONGDATE%环境变量,要获取和Robocopy一致的系统长格式日期时间,可借助PowerShell调用系统本地化API实现,无需手动适配不同区域格式:
- 获取长格式日期:
for /f "delims=" %%a in ('powershell -Command "(Get-Date).ToLongDateString()"') do set "LONGLDATE=%%a"
- 获取长格式时间:
for /f "delims=" %%a in ('powershell -Command "(Get-Date).ToLongTimeString()"') do set "LONGLTIME=%%a"
- 组合输出示例:
echo 当前时间:%LONGLDATE% %LONGLTIME%
该命令会自动跟随系统区域设置的长格式规则输出,和Robocopy的日志时间格式完全一致。
二、让Robocopy输出短格式日期时间
Robocopy本身没有直接指定日期格式的参数,其输出的时间格式依赖系统的“长日期/长时间”设置。若要强制让Robocopy输出短格式,可通过临时修改当前控制台进程的区域设置实现,但操作相对复杂且可能影响其他命令输出,因此更推荐采用第一种方法(获取长格式时间匹配Robocopy)。
内容的提问来源于stack exchange,提问作者Alkaid C
相关产品推荐
相关产品推荐

