Datetime 批处理文件:仅获取文件时间戳日期和日期(以天为单位)

Datetime 批处理文件:仅获取文件时间戳日期和日期(以天为单位),datetime,batch-file,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 我想删除时间戳的时间部分(仅限日期),然后是文件的保存时

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

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

我在网上找到了一些相当长的解决方案,其中包含十几行。有一种简短而甜蜜的方法吗?

这里有一些简短而甜蜜的方法。它不像您希望的那么短和甜美,但至少它不是12行代码。:)

for/f“eol=:delims=“%%f in”(
'dir/b/a-d/one*.txt*.pdf*.doc**.xls**.msg 2^>nul'
)执行调用:datediff“%indent%%fileBullet%%%F%delimeter%%”%%~tF
后藤:EOF
:datediff
echo wscript.echo DateDiff^(“d”,“2”,Date^(^)>%temp%\dd.vbs”

set/P i=“%1%2%delimeter%”否,批处理没有执行日期算术的短而甜的本机功能。您可以包括“几十行”,或者切换到另一种支持日期算术的脚本语言,或者可能是一种混合方法,或者查找并使用支持日期算术的第三方工具,并让您的脚本根据需要调用该实用程序。
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"