返回
Windows 批处理中为批处理作业中的文件名创建时间戳
windows
2024-03-18 03:38:15
为批处理作业中的文件名创建时间戳
在 Windows 批处理中
在 Windows 批处理中,你可以使用 copy
命令为文件创建带有时间戳的文件名。语法如下:
copy source.log %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
此命令将复制文件 source.log
并为新文件创建带有日期的时间戳的文件名。例如,如果当前日期为 2023 年 3 月 8 日,新文件名将为:
2023-03-08.log
命令分解
%DATE%
环境变量包含当前日期,格式为YYYY-MM-DD
。:~0,4
提取字符串%DATE%
中的前 4 个字符,即年。:~5,2
提取字符串%DATE%
中的第 5 到第 6 个字符,即月。:~8,2
提取字符串%DATE%
中的第 8 到第 9 个字符,即日。.
用作文件名的扩展名分隔符。
示例脚本
以下是一个示例批处理脚本,它使用上述命令为名为 source.log
的文件创建带有时间戳的文件名:
@echo off
copy source.log %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
运行此脚本将创建一个名为 2023-03-08.log
的新文件,其中包含 source.log
文件的内容。
常见问题解答
Q1:我可以使用其他日期格式吗?
A1:可以,只需相应地调整 :~
参数。例如,以下命令将创建带有 DD-MM-YYYY
格式的时间戳的文件名:
copy source.log %DATE:~8,2%-%DATE:~5,2%-%DATE:~0,4%.log
Q2:如何使用不同的扩展名?
A2:只需在命令中更改 .log
部分即可。例如,以下命令将创建带有 .txt
扩展名的文件:
copy source.log %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.txt
Q3:我可以给文件一个自定义前缀吗?
A3:可以,只需在命令中添加一个前缀字符串。例如,以下命令将创建一个以 backup-
开头的时间戳文件:
copy source.log backup-%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
Q4:我可以使用 for
循环为多个文件创建时间戳文件吗?
A4:可以,使用以下语法:
for %%f in (*.log) do copy %%f %%~nf-%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
Q5:如何在 Linux 批处理中创建带有时间戳的文件名?
A5:在 Linux 批处理中,你可以使用 date
命令和 mv
命令,语法如下:
mv source.log "$(date +%Y-%m-%d).log"