windows - 在 Windows 批处理中使用创建日期和时间重命名文件

标签 windows date batch-file time renaming

我有一个包含数千个 pdf 和 tif 的目录树。一个文件夹可能包含多个 pdf 或 tif,在这种情况下它们的编号为 1.pdf、2.pdf 等......我必须让它们可用并确保它们首先是手动处理的最旧文件 - 所以我想用它们重命名它们创建日期和时间(1.pdf -> 20150415481876.pdf):

目前我在用

@echo off  
set datetime=%~t1
set name=%~n1 
set extension=%~x1
set year=%datetime:~6,4%
set month=%datetime:~3,2%
set day=%datetime:~0,2%
set hour=%datetime:~11,2%
set min=%datetime:~14,2%
ren %1 "%year%%month%%day%%hour%%min%%name%%extension%"

现在可以将文件 1.tif 正确重命名为 2014052513241.tif(文件创建于 2014 年 5 月 25 日 13:24)。但是,如果我用 batch.bat *.tif 调用批处理,我怎样才能让它能够处理同一文件夹中的多个文件(例如 1.tif 2.tif 3.tif)? 谢谢

最佳答案

@if (@X)==(@Y) @end /* JScript comment
    @echo off

    set "extension=tiff"
    set "directory=c:\somedir"

    pushd "%directory%"

    setlocal enableDelayedExpansion
    for %%a in (*%extension%) do (
        for /f %%# in ('cscript //E:JScript //nologo "%~f0" %%a') do set "cdate=%%#"
        echo ren "%%a" "!cdate!%%~xa"
    )

    rem cscript //E:JScript //nologo "%~f0" %*
    exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */


FSOObj = new ActiveXObject("Scripting.FileSystemObject");
var ARGS = WScript.Arguments;
var file=ARGS.Item(0);

var d1=FSOObj.GetFile(file).DateCreated;

d2=new Date(d1);
var year=d2.getFullYear();
var mon=d2.getMonth();
var day=d2.getDate();
var h=d2.getHours();
var m=d2.getMinutes();
var s=d2.getSeconds();
var ms=d2.getMilliseconds();

if (mon<10){mon="0"+mon;}
if (day<10){day="0"+day;}
if (h<10){h="0"+h;}
if (m<10){m="0"+m;}
if (s<10){s="0"+s;}
if (ms<10){ms="00"+ms;}else if(ms<100){ms="0"+ms;}

WScript.Echo(""+year+mon+day+h+m+s+ms);

设置您自己的扩展名和目录,以将目录中具有给定扩展名的所有文件重命名为其创建日期。格式将为 YYYYMMDDhhmm。重命名是 echoed,因此您可以看看是否一切正常。如果是,请从第 9 行删除 echo 单词。

关于windows - 在 Windows 批处理中使用创建日期和时间重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30079757/

相关文章:

c++ - 您是否需要担心重启时清理内存

python - 使用 Popen 打开一个进程并在一段时间后终止

batch-file - 愚蠢的批处理文件行为。尝试执行评论

powershell - 使用Psexec运行Powershell脚本时出错

java - 使用命令行参数启动 .jar 文件(但没有控制台窗口)

windows - 将文件分成两半到两个新的文本文件(命令行/批处理文件)

c# - 如何将项目添加到窗口的上下文菜单中[仅适用于 pdf 文件和 doc 文件]

sql - 使用按日期分组的 sql 查询

date - 更改列表中的日期格式

r - 从 Excel 到 R 的日期,平台依赖性