У меня есть эта строка в пакетном скрипте, который я использую.

set ldt=%Date:~8,2%%Date:~3,2%%Date:~0,2%_%Time:~0,2%%Time:~3,2%%Time:~6,2%

Он работал нормально и генерировал текст, как показано ниже, так как я написал его.

170420_92444

Но теперь на новом компьютере (который все еще Windows Server 2008 R2) он генерирует что-то вроде этого.

9/ 0We_184000

Я не могу понять, почему это изменилось.

1 ответ1

1

Не используйте переменные, зависящие от локали / пользовательских настроек% date%% time%. Вместо этого используйте wmic:

@Echo off
for /f "tokens=1-3 delims=.+-" %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set ldt=%_DT:~2,6%_%_DT:~8,6%
set ldt

Пример вывода.

ldt=170420_121402

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .