2013-02-21 90 views
0

以下幾行輸出文件夾,分隔符和時間戳中某些文件的名稱。批處理文件:僅獲取文件時間戳日期和年齡天數

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 

我發現一些相當長的解決方案在線包含十幾條線。有一個簡短而甜美的方法嗎?

+2

不,批處理不具備執行日期算術的簡短且甜蜜的本機功能。您可以包含「幾十行」,或切換到另一種支持日期算法的腳本語言,或者可能是混合方法,或者查找並使用支持日期算術的第三方工具,並讓腳本根據需要調用該實用程序。 – dbenham 2013-02-21 17:23:20

回答

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" 
+0

哇!很棒。非常感謝。 – buttonsrtoys 2013-03-20 19:16:24

相關問題