Я работал над сценарием, который мне нужен для считывания времени из системы за секунды, но не за миллисекунды. Я заметил, что некоторые компьютеры имеют разные настройки региона, что вызвало у меня несколько проблем, например, когда дата с одного компьютера отображается как 01/01/2020
, на другом - 01.01.2020
с помощью команды %date%
et c.
То же самое, если я использую команду %time%
, на некоторых компьютерах отображается время, например 12:13:14,15
, на некоторых - 12:13:14.16
.
Теперь, чтобы решить эту проблему, мне нужно создать переменную прочитать символ разделителя и вывести правильный. Для даты команды Это было просто.
Для времени у меня есть эта команда:
FOR /F "tokens=3 delims=0123456789" %%A IN ('echo %time%') DO set timeSeparatorSymbol=%%A
Если на компьютере есть символ для разделителя для миллисекунд, как .
, тогда вывод:
timeSeparatorSymbol=.
Что хорошо.
Если на компьютере символ разделителя для миллисекунд обозначен как ,
, то на выходе будет:
timeSeparatorSymbol=
Как видите, переменная не создана, и я изо всех сил пытаюсь выяснить, почему запятая не принимает ее как переменную.
Мне нужно это, чтобы следующий скрипт работал на всех компьютерах независимо от региональных настроек:
for /f "tokens=3 delims=:%timeSeparatorSymbol%" %%A in ('echo %time%') do set second=%%A
Заранее спасибо.