iT邦幫忙

2

批次檔裡用dir顯示時間問題

@ECHO OFF

for /f %%i in ('dir . /OD /A-D /S /B') do (
	echo %%~dptnxi
)

請問各位神人 我用for迴圈(上面的語法)下DIR撈出的檔案修改時間可以改為 hh:mm:ss嗎?
謝謝!
https://ithelp.ithome.com.tw/upload/images/20191008/201102750Ts7nFKsMj.png

2 個回答

4
dragonH
iT邦大師 1 級 ‧ 2019-10-08 09:49:01
最佳解答

可以用 forfiles

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in ('"forfiles /c "cmd /c echo @ftime @Path" "') do (
  set modif_time=%%i
  echo !modif_time:~3!
)

result

D:\demo>index.bat
09:45:26 "D:\demo\index.bat"
09:07:58 "D:\demo\test1.jpg"
09:08:04 "D:\demo\test2.jpg"

參考1

參考2

4
浩瀚星空
iT邦大師 1 級 ‧ 2019-10-08 09:36:21

dir並不能指定格式,它的格式來自於系統的設定。

不過他的日期輸出是依照你的系統的時間格式去產生的。
你可以直接從控制台「地區及語言」「時間格式」那邊去做調整。

預設可能是 tt hh:mm:ss
將其選擇為 HH:mm:ss
就會變成24小時制了。也不會再出現上下午的字。

我要發表回答

立即登入回答