1

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

从现在开始感谢。

4

1 回答 1

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}
于 2012-07-25T14:41:14.970 回答