通过批处理脚本编辑带有名称和创建日期的文件名

时间:2012-07-25 13:29:33

标签: batch-file

我正在尝试创建一个批处理文件,该文件通过名称和创建日期重命名文件夹中的所有文件。例如>用户文件名将其更改为> 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"

谢谢你们。

1 个答案:

答案 0 :(得分: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 one liner - 它更快,区域独立且易于修改。如果ps可用,我建议使用它。

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