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