批处理文件:仅获取文件时间戳日期和以天为单位的年龄

时间:2013-02-21 16:31:00

标签: datetime batch-file

以下几行输出文件夹中某些文件的名称,分隔符和时间戳。

for /f "eol=: delims=" %%F in (
  'dir /b /a-d /one *.txt *.pdf *.doc* *.xls* *.msg 2^>nul'
) do echo %indent%%fileBullet% %%F%delimeter% %%~tF

所以,产生这样的东西

Response.docx; 02/07/2013 12:13 PM

我想删除时间戳的时间部分(仅限日期),然后删除文件的天数。所以

Response.docx; 02/07/2013; 14

我在网上发现了一些相当冗长的解决方案,包含十几行。有一种短暂而甜蜜的方法吗?

1 个答案:

答案 0 :(得分:1)

这是更短更甜的东西。它并不像你想的那么简短和甜美,但至少它不是12行代码。 :)

for /f "eol=: delims=" %%F in (
  'dir /b /a-d /one *.txt *.pdf *.doc* *.xls* *.msg 2^>nul'
) do call :datediff "%indent%%fileBullet% %%F%delimeter%" %%~tF

goto :EOF

:datediff
echo wscript.echo DateDiff^("d", "%2", Date^(^)^)>"%temp%\dd.vbs"
set /P i="%~1 %2%delimeter% "<NUL
cscript /nologo "%temp%\dd.vbs"
del /q "%temp%\dd.vbs"