Я використовую цю команду в пакетному файлі, щоб додати позначку часу до файлу:
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
Він добре працює на Windows Server 2008 R2, але він не працює на іншому пристрої з тією ж операційною системою (2008 R2).
Я спробував інший сценарій:
@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
Це добре працює на обох серверах, але різні виходи:
Сервер із проблемою:
Log_ ~0,4-~4,2-~6,2_~8,2-~10,2-~12,2.txt
Інший сервер:
Log_ 2017-06-04_12-50-07.txt
ECHO %date%
і вони підтвердять, що результат формату, який ви отримуєте на обох, однаковий чи ні. Можливо, налаштування форматування часу відрізняються між двома серверами, і тому у вас є невідповідності. Тому просто зробіть це і подивіться, що ви визначаєте. Якщо вони різні формати, то змініть формат, щоб він відповідав тому, що працює, а потім використовуйте той самий сценарій, наприклад, %date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%
і виконайте його.
ERROR: Code = 0x80020009 Description = Exception occurred. Facility = Dispatch
повідомленні про помилку.