标题: [日期时间] [已解决]求BAT批量读取文件的创建时间,覆盖到其修改时间 [打印本页]
作者: joshatt 时间: 2015-4-5 08:11 标题: [已解决]求BAT批量读取文件的创建时间,覆盖到其修改时间
求:
把当前文件夹中的所有文件(但.bat文件除外),批量地
读取"创建时间",精确到秒
然后以此覆盖"修改时间",精确到秒
拜谢了.
作者: pcl_test 时间: 2015-4-5 10:41
回复 1# joshatt - @echo off
- ::把批处理跟需处理的文件放在一起运行
- setlocal enabledelayedexpansion
- set olddate=%date:~,10%
- for /f "delims=" %%a in ('dir /a-d /b ^|find /i /v ".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
- )
- date %olddate%
- echo 请手动更新系统日期时间
- 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 |