【问题标题】:Rename file to creation time (batch file only)将文件重命名为创建时间(仅限批处理文件)
【发布时间】:2015-04-20 23:38:38
【问题描述】:

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

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

【问题讨论】:

    标签: batch-file batch-rename


    【解决方案1】:
    @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 列表并选择适当的日期。清单中唯一或最后一行将包含第三个非空标记是相关文件的日期/时间,因此datepart 将获得yyyy-mm-dd hh

    for/f %%a 然后将完整的文件名应用到%%a 准备将其分区到其组件中,for/f %%d 将来自datepart 的第一个标记(即直到空格)分配给 %%d。

    将组件组合在一起,然后报告结果...

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 2014-12-17
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 2011-06-12
      • 2014-02-26
      • 2012-12-10
      • 2015-07-16
      相关资源
      最近更新 更多