Board logo

标题: [日期时间] [已解决]求BAT批量读取文件的创建时间,覆盖到其修改时间 [打印本页]

作者: joshatt    时间: 2015-4-5 08:11     标题: [已解决]求BAT批量读取文件的创建时间,覆盖到其修改时间

求:
把当前文件夹中的所有文件(但.bat文件除外),批量地
读取"创建时间",精确到秒
然后以此覆盖"修改时间",精确到秒

拜谢了.
作者: pcl_test    时间: 2015-4-5 10:41

回复 1# joshatt
  1. @echo off
  2. ::把批处理跟需处理的文件放在一起运行
  3. setlocal enabledelayedexpansion
  4. set olddate=%date:~,10%
  5. for /f "delims=" %%a in ('dir /a-d /b ^|find  /i /v ".bat"') do (
  6. set "file=%%~dpa%%a"
  7. set "file=!file:\=\\!"
  8. echo !file!
  9. for /f "tokens=1* delims=. " %%b in ('wmic datafile where name^="!file!" get CreationDate ^|find "."') do set "creationdate=%%b"
  10. set "tmpdate=!creationdate:~,4!/!creationdate:~4,2!/!creationdate:~6,2!"
  11. set "tmptime=!creationdate:~8,2!:!creationdate:~10,2!:!creationdate:~12,2!"
  12. date !tmpdate!
  13. time !tmptime!
  14. copy /b "%%a"+,, /y
  15. )
  16. date %olddate%
  17. echo 请手动更新系统日期时间
  18. pause
复制代码

作者: joshatt    时间: 2015-4-5 11:29

本帖最后由 joshatt 于 2015-4-5 11:31 编辑

回复 2# pcl_test

太感谢了!!!

我看到代码后面使用了copy方法, 我不太懂啊, 不知道有没有更好的方法, copy似乎运行起来略慢了点
作者: yakeyun    时间: 2022-1-10 16:06

回复 3# joshatt


@echo off
::把批处理跟需处理的文件放在一起运行
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d /b ^|find  /i /v "dast.bat"') do (
set "file=%%~dpa%%a"
set "file=!file:\=\\!"
echo !file!
for /f "tokens=1* delims=. " %%b in ('wmic datafile where name^="!file!" get CreationDate ^|find "."') do set "creationdate=%%b"
set "tmpdate=!creationdate:~,4!/!creationdate:~4,2!/!creationdate:~6,2!"
set "tmptime=!creationdate:~8,2!:!creationdate:~10,2!:!creationdate:~12,2!"
date !tmpdate!
time !tmptime!
copy /b "%%a"+,, /y
)

del %0




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2