windows - 在批处理作业中创建文件名作为时间戳

标签 windows batch-file cmd timestamp

我们有一个每天运行的批处理作业,将文件复制到拾取文件夹。我还想复制该文件并将其放入具有文件名的存档文件夹中

 yyyy-MM-dd.log

在 Windows 批处理作业中执行此操作的最简单方法是什么?

我基本上是在寻找这个 Unix 命令的等价物:

cp source.log `date +%F`.log

最佳答案

CP source.log %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.log

但这取决于语言环境。我不确定 %DATE% 是否已本地化,或者取决于为 Windows 中的短日期指定的格式。

这是一种独立于语言环境的方法,可以从 this answer 中提取当前日期。 , 但它取决于 WMICFOR/F:

FOR /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
CP source.log %B:~0,4%-%B:~4,2%-%B:~6,2%.log

关于windows - 在批处理作业中创建文件名作为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064557/

相关文章:

java - ProcessBuilder 找不到文件?!

batch-file - 按下按键时执行

java - 让 Java 应用程序从命令提示符自行运行?

cmd - 如何从 REG QUERY 获取特定列?

windows - Cygwin 在运行 Git 推送时导致 longjmp

windows - 如何找出用户计算机上安装了哪些 Visual Studio 扩展?

windows - 如何使用相同的一行代码为命令行和批处理文件转义 %%?

batch-file - "rem".bat 文件中的注释导致错误 "25 was unexpected at this time"

java - Ant 在前台使用 CMD 启动 Java

c++ - 为什么不同的图像类型需要不同的 dumpbin 选项?