将文件重命名为创建时间(仅限批处理文件)

Rename file to creation time (batch file only)

不确定仅使用批处理文件是否可行。

我有一个名为BaseFile.7z的文件,位置是E:\Backup\C Drive Zip\BaseFile.7z

是否可以创建一个批处理命令来重命名文件的创建日期?例如 BaseFile - 02-19-2015.7z

我目前有一个命令可以使用我粘贴在下面以供参考的当前日期重命名文件,但这并不是我要找的。我需要创建日期。

RENAME "E:\Backup\C Drive Zip\Jaipur.txt" "BaseFile - %date:/=-%.txt"
@ECHO OFF
SETLOCAL
SET "filename=U:\sourcedir\zzz.zzz"
IF NOT EXIST "%filename%" ECHO "%filename%" NOT found&GOTO :eof
SET "datepart="
FOR /f "tokens=1-3delims=/-:" %%a IN ('dir /tc "%filename%"') DO IF "%%c" neq "" SET "datepart=%%a-%%b-%%c"
FOR /f %%a IN ("%filename%") DO FOR /f %%d IN ("%datepart%") DO ECHO(REN "%%a" - "%%~na %%d%%~xa"
GOTO :EOF

所需的 REN 命令仅 ECHOed 用于测试目的。 确认命令正确后,将ECHO(REN更改为REN以实际重命名文件。

请注意,日期引用的使用通常比较草率。每个文件上有三个日期 - 实际创建日期(使用 /tc)、最后访问日期(/ta)和最后写入日期(/tw)。

进程找到文件,然后读取 dir 列表并选择了适当的日期。列表中包含第三个非空标记的唯一或最后一行是相关文件的 date/time,因此 datepart 将获取 yyyy-mm-dd hh

然后 for/f %%a 将完整的文件名应用到 %%a 准备好分区到它的组件中 for/f %%d 分配 datepart 的第一个标记(即直到space) 到 %%d.

将组件拼在一起,结果报告...