2012-07-25 87 views
1

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

编辑:上一个答案错误地显示修改时间,而不是创建时间。

@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 
) 
) 

会吐出的格式,按您的REQ文件的新名称。应该从这个工作起来相当容易。

注:这是假设你的日期分隔符是“/”和在总体上是依赖于语言环境

编辑:以上为纯批次的解决方案是根本不可靠低于相当于PowerShell的一个班轮 - 它的速度更快,语言环境独立且易于修改。如果ps可用,我会推荐使用它。

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

是不是'%%〜tA'修改日期,没有创建日期? – 2012-07-25 14:55:44

+0

@BaliC - 谢谢,当然你是对的!我会重做并重新张贴 – wmz 2012-07-25 15:14:43

+0

感谢WMZ,但这只能显示CMD上的日期。我想编辑使用name_cratedDate更改文件名。你可以帮我吗?谢谢。 – 2012-07-26 05:56:42

相关问题