[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[日期时间] [已解决]求BAT批量读取文件的创建时间,覆盖到其修改时间

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

拜谢了.
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 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
复制代码
1

评分人数

TOP

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

回复 2# pcl_test

太感谢了!!!

我看到代码后面使用了copy方法, 我不太懂啊, 不知道有没有更好的方法, copy似乎运行起来略慢了点

TOP

回复 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

TOP

返回列表