﻿# 如何在 Batch 檔取得系統的日期、時間欄位 (第二版)

去年曾經寫過 "[如何在 Batch 檔取得系統的日期、時間欄位](/post/2007/10/29/How-to-get-system-date-time-in-batch-file)" 的文章，靠的是 date 與 time 指令，但缺點是時間的精確度只能到「分鐘」而已，這次我們改用 **%date%** 與 **%time%** 環境變數，取得時間的精確度可達「百分之一秒」。

我們可以在 DOS 模式下用以下指令先測試出你的電腦輸出的格式，一般來說輸出的格式會受到 Windows 控制台中的「地區與語言選項」設定所影響，不過一般來說繁體中文的環境都不會有多大的變化，在使用前先確認一下輸出的格式是否跟我們所用的一致即可。

```
D:\>echo %date%
2008/12/06 星期六

D:\>echo %time%
21:47:59.49
```

首先，我們先取得今天日期的年、月、日

```
for /f "tokens=1-4 delims=-/ " %%i IN ("%date%") DO (
set year=%%i
set month=%%j
set day=%%k
)
```

再來，我們取得當下時間的時、分、秒、百分之一秒

```
for /f "tokens=1-4 delims=:." %%i IN ("%time%") DO (
set hour=%%i
set minute=%%j
set second=%%k
set centisecond=%%l
)
```

之後要組合含有日期、時間的字串就容易多了：

```
SET OutputDir=TEMP_%year%%month%%day%_%hour%_%minute%_%second%_%centisecond%
```
