感谢阅读和可能的答案。
我有一个名为yyyymmddhhMMss.m2ts的文件夹,比如20120330193059.m2ts。实际上它们是索尼摄像机的输出,其中包含缺少元数据的额外文件。
为了使它们得到妥善组织,我需要设置"创建日期"和"日期修改"文件属性根据其文件名,因为那里已经存在所有必要的数据。
我完全远离任何编程或编码,但我想我可以使用我能找到的示例自行编译.cmd。但现在我必须承认我已经失败了。
我知道我必须将文件名转换为变量,将此变量拆分为6个部分,然后将它们作为文件夹中每个文件的文件属性应用。但我无法理解。
有很多关于如何根据时间戳重命名文件的示例,但反之亦然。
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
您可以尝试下面的批处理文件。首先使用一组测试文件。
@echo off
setlocal EnableDelayedExpansion
set origDate=%date%
set origTime=%time%
for %%f in (*.*) do (
set fName=%%~Nf
set fDate=!fName:~4,2!/!fName:~6,2!/!fName:~0,4!
set fTime=!fName:~8,2!:!fName:~10,2!:!fName:~12,2!
REM Next line update just "Date Modified" in a fast way:
REM echo !fDate!| date & echo !fTime!| time & copy "%%f" +,,
REM Next 4 lines update both "Modified" and "Created" dates, but it is slower:
echo !fDate!| date & echo !fTime!| time & copy "%%f" "%%~Nf.tmp"
echo !fTime!| time & copy "%%~Nf.tmp" +,,
del "%%f"
ren "%%~Nf.tmp" "%%f"
)
echo %origDate%| date
echo %origTime%| time
此批处理文件要求您具有足以更改系统时钟的凭据。假设echo %date%
以MM / DD / YYYY格式显示日期;如果没有,则需要稍加修改。如果要处理的文件数量很大,系统时钟可能会被放回几秒钟;也许您需要在批处理文件结束时手动重置系统时钟。
请报告结果。
编辑:我在上面的同一个商家信息中包含了两部分(修改日期和创建日期)。