批处理脚本中生成带有时间戳的文件名

MD Aminul Islam 2022年7月12日
批处理脚本中生成带有时间戳的文件名

有时,我们从批处理脚本生成系统日志。但是,这里的问题是日志文件的名称;如果文件名不是唯一的,它可能会替换同名的文件。

在本文中,我们将了解如何使用当前时间和日期从系统生成唯一的文件名。此外,我们将讨论代码及其解释以使其更易于理解。

批处理脚本中带有时间戳的系统生成文件名

我们在这里使用时间和日期,因为时间和日期并不总是相同,并提供有关文件名的信息。在下面的示例中,我们将生成一个名称为时间和日期组合的日志文件。

我们示例的代码如下所示:

@ECHO off
SET YY=%date:~10,4%
SET MM=%date:~4,2%
SET DD=%date:~7,2%
SET HH=%time:~0,2%
IF %HH% lss 10 (SET HH=0%time:~1,1%)

SET NN=%time:~3,2%
SET SS=%time:~6,2%
SET MS=%time:~9,2%

SET NEWFILENAME=%YY%%MM%%DD%-%HH%%NN%%SS%
ECHO "This is a data" > "G:\Directory\access_%NEWFILENAME%.txt"

请记住,批处理包含时间和日期的内置变量;它们是 %time%%date%。这些变量以字符串格式生成时间和日期。

在我们的代码中,我们使用以下几行将日期的部分与字符串分开:

SET YY=%date:~10,4%
SET MM=%date:~4,2%
SET DD=%date:~7,2%

同样,我们使用以下几行将时间的各个部分与字符串分开:

SET HH=%time:~0,2%
IF %HH% lss 10 (SET HH=0%time:~1,1%)

SET NN=%time:~3,2%
SET SS=%time:~6,2%
SET MS=%time:~9,2%

然后,我们使用以下行创建了包含时间和日期的文件名:

SET NEWFILENAME=%YY%%MM%%DD%-%HH%%NN%%SS%

最后,我们使用以下行在特定目录中创建了一个具有系统生成名称的文件:

ECHO "This is a data" > "G:\Directory\access_%NEWFILENAME%.txt"

当你在命令提示符下运行此脚本时,你将看到一个文件,其名称是日期和时间的组合。该文件包含文本 This is a data

请注意,我们在本文中分享的代码是用 Batch 脚本编写的,并且只能在 Windows 命令提示符环境中运行。

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn