Tôi có tập lệnh batch xuất ra tệp và tôi đang cố gắng đảm bảo rằng mỗi lần tập lệnh được thực thi, không có tệp nào bị ghi đè, vì vậy tôi đang cố gắng đặt dấu thời gian trên đó.Dấu thời gian tên tập tin trong kịch bản lệnh Windows CMD
Hiện nay tôi có điều này:
set stamp=%DATE:/=-%_%TIME::=-%
Nhưng nếu thời gian là 1-9 AM, nó mang lại một cái gì đó như:
13-06-2012_ instead of a full 13-06-2012_12-39-37.28
Làm thế nào tôi có thể sửa lỗi này?
Tôi đang sử dụng Windows 7 , và đầu ra của echo %date% %time%
trong một cửa sổ dòng lệnh được (định dạng đồng hồ của tôi cho 'ngày ngắn' được thiết lập để hiển thị tháng 3 chữ cái):
03-Sep-12 9:06:21.54
Chỉnh sửa: Tôi đã sử dụng dấu thời gian sau đây cho một thời điểm tốt, hoạt động tốt.
set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%
Nó đã tạo ra một dấu thời gian như: 18-03-2013_13-37-43.26
, bằng cách thay thế /
và :
trong %TIME%
và %DATE%
, sau đó tước khoảng trắng. Khoảng trắng là vấn đề trong câu hỏi ban đầu của tôi, thực sự.
xin lỗi dường như cũng trả lại ngày không hợp lệ, tôi đã nhận được '-06-2012_01' – bryc
Tôi đã chỉnh sửa. Điều này sẽ sửa chữa nó là 2012-06-14_12-47-PM –
Tại sao không chỉ làm tất cả trên một dòng? 'for/f" tokens = 2-8 delims =.:/"%% a in ("% date%% time% ") đặt DateNtime = %% c - %% a - %% b _ %% d-% % e - %% f. %% g' Ví dụ này sử dụng đồng hồ 24 giờ thay vì 12 giờ + sáng/chiều và bao gồm mili giây. Nếu bạn không muốn các miliseconds, chỉ cần không sử dụng '%% g'. –