将时间添加到 Windows 脚本

将时间添加到 Windows 脚本

我有这个每小时执行一次的迷你 Windows 脚本,它基本上每小时创建一个文件,但我需要使用日期重命名该文件(已经完成),但我无法添加时间

.....创建我的 perfstats01.txt 文件的代码:

SET date="%date:~0,2%-%date:~3,2%-%date:~6,6%"
ren C:\perfstats01.txt "%date%".txt

因此我将perfstats01.txt像这样重命名该文件:

07-03-2012_10:30am.txt

或者

07-03-2012_13:01.txt

大家知道如何实现这个目标吗?

多谢

答案1

文件名中的冒号无效。因此,删除冒号后,我会执行以下操作:

(如果您想要带有 AM 或 PM 的 12 小时制时钟)

:GetDate
 FOR /F "DELIMS=" %%T IN ('TIME /T') DO SET @TIME=%%T
 FOR /F "TOKENS=2" %%D IN ('DATE /T') DO SET @DATE=%%D
 FOR /F "TOKENS=1-4 DELIMS=-/ " %%D IN ('DATE /T') DO (
     SET @DAY=%%D
     SET @DD=%%F
     SET @MM=%%E
     SET @YYYY=%%G
 )
 SET @HOUR=%@TIME:~0,2%
 SET @SUFFIX=%@TIME:~6,2%
 SET @NOW=%@HOUR%%@TIME:~3,2%
 SET @NOW=%@NOW: =0%
 SET @TODAY=%@YYYY%-%@MM%-%@DD%
ren c:\perfstats01.txt %@DD%-%@MM%-%@YYYY%_%@NOW%%@SUFFIX%.txt

或者这样:

(如果您想要 24 小时制时钟)

:GetDate
 FOR /F "DELIMS=" %%T IN ('TIME /T') DO SET @TIME=%%T
 FOR /F "TOKENS=2" %%D IN ('DATE /T') DO SET @DATE=%%D
 FOR /F "TOKENS=1-4 DELIMS=-/ " %%D IN ('DATE /T') DO (
     SET @DAY=%%D
     SET @DD=%%F
     SET @MM=%%E
     SET @YYYY=%%G
 )
 SET @HOUR=%@TIME:~0,2%
 SET @SUFFIX=%@TIME:~6,2%
 IF /I "%@SUFFIX%"=="AM" IF %@HOUR% EQU 12 SET @HOUR=00
 IF /I "%@SUFFIX%"=="PM" IF %@HOUR% LSS 12 SET /A @HOUR=%@HOUR% + 12
 SET @NOW=%@HOUR%%@TIME:~3,2%
 SET @NOW=%@NOW: =0%
 SET @TODAY=%@YYYY%-%@MM%-%@DD%

ren C:\perfstats01.txt %@DD%-%@MM%-%@YYYY%_%@NOW%.txt

答案2

我认为您不能在批处理文件中执行此操作。但是,您可以使用 Windows Script Host。以下是示例:

'// Initialize variables
Dim oShell, oFSO, oFile
set oShell = CreateObject("WScript.Shell")
set oFSO = CreateObject("Scripting.FileSystemObject")

'// The ExpandEnvironmentStrings function allows you to pull
'// and save an environment variable!
Set currentDate = oShell.ExpandEnvironmentStrings("%date%")

'// There is no 'rename' function in Windows Script, so use this instead.
set oFile = oFSO.GetFile("c:\oldname.txt")
file.name = "newName.txt"

'// This ensures all file resources are released.
set file = nothing
set fso = nothing

一定要根据需要自定义日期字符串。这应该是不言而喻的(但我见过人们一次又一次地被它困扰),运行此脚本的身份需要具有该文件的适当权限。

相关内容