Check-out doff.exe. Tôi sử dụng rất nhiều điều này để nhận được dấu thời gian cho việc đặt tên các tệp nhật ký. Từ trang web của mình:
DOFF in ngày và giờ được định dạng, với chênh lệch ngày tùy chọn, (ví dụ: in ngày hôm qua, +1 in ngày mai). Để xem tất cả các tùy chọn có sẵn, hãy thực hiện "doff -h". Tôi thường sử dụng tiện ích này để đổi tên các tệp nhật ký để chúng bao gồm dấu thời gian, (xem ví dụ thứ ba bên dưới). Mã này nên biên dịch theo Unix/Linux, cũng như DOS.
lệnh mẫu:
C:\>doff
19991108131135
Khi không có các thông số đầu ra là ngày hiện tại/thời gian theo định dạng sau: yyyymmddhhmiss
C:\>doff mm/dd/yyyy
11/08/1999
Trong ví dụ trên một đặc tả định dạng ngày được đưa ra.
@echo off
for /f "tokens=1-3 delims=/ " %%a in ('doff mm/dd/yyyy -1') do (
set mm=%%a
set dd=%%b
set yyyy=%%c)
rename httpd-access.log httpd-access-%yyyy%%mm%%dd%.log
Các tập tin batch ví dụ trên cho thấy một cách gọn gàng để đổi tên một tập tin đăng nhập dựa trên ngày hôm qua.Lệnh "for" thực thi doff để in ngày hôm qua, (tham số "-1" chỉ định ngày hôm qua), sau đó trích xuất từng thành phần của ngày vào các biến tập tin batch của DOS. Các "đổi tên" lệnh đổi tên "httpd-access.log" thành "httpd-access- [ngày hôm qua] .log"
Ngoài ra kiểm tra now.exe của Microsoft, có sẵn trong Windows Server 2003 Resource Kit Tools. Một điều xấu tôi phát hiện ra (một cách khó khăn) về nó là nó đặt ERRORLEVEL thành số ký tự được in.
Trông như thế này:
c:\>now
Thu May 19 14:26:45 2011
Trợ giúp:
NOW : Display Message with Current Date and Time
Usage : NOW [message to be printed with time-stamp]
NOW displays the current time, followed by its command-line arguments.
NOW is similar to the standard ECHO command, but with a time-stamp.
Nguồn
2011-05-19 21:38:16
Điều này thực sự hữu ích được sử dụng bên trong tập lệnh bởi: > cscript date.vbs // Nologo (trong đó date.vbs chứa mã bạn đưa vào) – eliocs
Điều này không chỉ trả về giờ địa phương? Câu hỏi đặt ra là tạo ra datetime UTC - và là những gì tôi đang tìm kiếm. – Jim2B