Tôi sử dụng lệnh này trong tệp bó để thêm dấu thời gian vào tệp:
copy C:\1\1.txt C:\1\Log_%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%.txt
Nó hoạt động tốt trên máy chủ windows 2008 R2 nhưng nó không hoạt động trên một thiết bị khác có cùng hệ điều hành (2008 R2).
Tôi đã thử một kịch bản khác:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
copy "C:\1\1.txt" "C:\1\Log_ %stamp%.txt
Nó hoạt động tốt trên cả hai máy chủ nhưng đầu ra khác nhau:
Máy chủ có vấn đề:
Log_ ~0,4-~4,2-~6,2_~8,2-~10,2-~12,2.txt
Máy chủ khác:
Log_ 2017-06-04_12-50-07.txt
ECHO %date%
và họ xác nhận kết quả định dạng bạn nhận được trên cả hai có giống nhau hay không. Có lẽ cài đặt định dạng thời gian là khác nhau giữa hai máy chủ và đó là lý do tại sao bạn có sự không nhất quán. Vì vậy, chỉ cần làm điều đó và xem những gì bạn xác định. Nếu chúng là các định dạng khác nhau, thì hãy thay đổi định dạng để khớp với định dạng hoạt động và sau đó sử dụng cùng một tập lệnh, ví dụ: %date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%
và được thực hiện với nó.
ERROR: Code = 0x80020009 Description = Exception occurred. Facility = Dispatch
thông báo lỗi.