【问题标题】:Editing file name with name and created date via batch script通过批处理脚本使用名称和创建日期编辑文件名
【发布时间】:2012-07-25 13:29:32
【问题描述】:

我正在尝试创建一个批处理文件,该文件通过名称和创建日期重命名文件夹中的所有文件。例如 >User 文件名将其更改为 >User_13-06-2012。请帮帮我。

我有这段代码,它只是添加了带有名称的新日期。

@echo off
cd "C:\account folder"
for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do set today=%%a%%b%%c
for %%f in (*.*) do ren "%%f" "%%~nf_%today%%%~xf"

从现在开始谢谢。

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    已编辑:之前的答案错误地显示了修改时间,而不是创建时间。

    这个

    @echo off
    for %%A in (*.*) do ( 
      for /f "skip=7" %%B  in ('dir /T:c "%%A"^|sort') do (
       for /f "tokens=1-3 delims=/" %%C in ("%%B") do echo %%~nA_%%C-%%D-%%E%%~xA
      )
    )
    

    将为根据您的要求格式化的文件生成新名称。从这里开始工作应该相当容易。

    注意:这假定您的日期分隔符是“/”并且通常它取决于区域设置

    编辑:因为上面的纯批处理解决方案本质上是不可靠的,所以下面是等效的 powershell 一个衬里 - 它更快,独立于语言环境并且易于修改。如果 ps 可用,我建议改用它。

    get-childitem | ? {$_ -is [IO.FileInfo]} | foreach-object {$_.basename + "_" + (get-date ($_.CreationTime) -uformat "%d-%m-%Y") + $_.extension}
    

    【讨论】:

    • %%~tA 不是修改日期,不是创建日期?
    • @BaliC - 谢谢,你当然是对的!我稍后会重做并重新发布
    • 感谢 WMZ,但这只会显示 CMD 上的日期。我想用 name_cratedDate 编辑更改文件名。请你帮助我好吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2021-07-01
    • 1970-01-01
    • 2018-07-02
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多