batch-file - 批处理 - 将文件的修改日期转换为 UNIX 时间戳
问题描述
我需要将文件夹中一组文件的最后修改日期转换为 unix 时间戳,时间戳只需要精确到当天,这样我最终可以删除超过 12 个月的文件
我目前正在执行如下
@echo off
setlocal
set fileLocation="someLocation"
echo %fileLocation%
call :GetUnixTimeToday UNIX_TIME
call :GetUnixTimeFile UNIX_FILE
set /a leadtime=%UNIX_TIME%-31536000
set /a check=%UNIX_TIME%-%leadtime%
echo %UNIX_TIME% seconds have elapsed since 1970-01-01 00:00:00 (todays date)
echo %leadtime% seconds to compare to (comparison date)
echo %check%
pause
for %%i IN ("%fileLocation%") DO (
echo %%i
for %%a in ("%%i\*.*") do (
echo "%%a"
for /f "tokens=1-4 delims=: " %%G in ('echo %%~ta') do (
set date=%%G
set hour=%%H
set min=%%I
set ampm=%%J
echo "%UNIX_TIME%" "%%G"
)
echo exit inner
call :GetUnixTimeFile UNIX_FILE
echo %UNIX_FILE%
pause
)
echo exit mid
pause
)
echo exit total
pause
goto :EOF
:GetUnixTimeToday
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
set %%x)
set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF
:GetUnixTimeFile
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
set %%x)
set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF
goto :eof
目前,文件夹中每个文件的最后修改日期以 dd/mm/yyyy 格式显示
是否可以调整:GetUnixTimeFile
以查找文件位置而不是wmic path win32_utctime
?还是将其解析date=%%G
为单个组件然后运行它会更好:GetUnixTimefile
?
任何帮助是极大的赞赏!
解决方案
推荐阅读
- ios - 如何用可编码的方式编写变压器?
- python - RuntimeError:模型类 users.models.User 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中
- sapui5 - 获取当前重点元素
- swift - Swift WatchOS 错误:控制器的接口描述(“图像”)中的未知属性
- symfony - 配置键“page_range”分页
- c# - 如何使用 C# 驱动程序在 MongoDb 中嵌套在字典(文档数组)中的列表中插入值?
- microsoft-dynamics - 其中哪一个更好更快?
- java - 三元运算符的奇怪行为
- amazon-web-services - ELB目标组-ECS启动任务时不会自动添加目标
- amazon-web-services - 在 AWS { "errorMessage": "Unable to import module 'lambda'" } (S3+Lambda) 中出现此错误