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

时间:2015-02-19 14:59:15

标签: batch-file batch-rename

不确定只有批处理文件才能实现。

我有一个名为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"

1 个答案:

答案 0 :(得分:2)

@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命令仅用于ECHO以用于测试目的。 在您确认命令正确后,将ECHO(REN更改为REN以实际重命名该文件。

请注意,日期引用的使用存在普遍的瑕疵。每个文件有三个日期 - 实际创建日期(使用/ tc),最后访问(/ ta)和最后写入(/ tw)。

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

for/f %%a然后将完整文件名应用到%%a准备好分区到其组件中,for/f %%ddatepart分配第一个令牌(即直到空格)进入%% d。

将组件组合在一起,并报告重新开始...