3

Дата и время на 2 компьютерах:
25.10.2017 3:36:05 __ в Windows 7
2017-10-25 03:07:23 ______ в Windows XP

Как региональные настройки меняются,
какая рекомендованная служебная программа и
командный файл для команды
автоматизировать вывод, в стандартный формат даты и времени?
(Переименовать каталог R:\1)

ren R:\1 R:\20171025_021459

R:\ ГГГГММДД_ЧЧММСС
R:\ 20171025_021459

-

2 ответа2

2

Как я могу получить стандартный формат даты и времени, игнорирующий региональные настройки?

Используйте следующий пакетный файл (который является правильным способом для анализа местного времени, выводимого из wmic):

@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in (`wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"`) do (
  set _day=00%%g
  set _hours=00%%h
  set _minutes=00%%i
  set _month=00%%j
  set _seconds=00%%k
  set _year=%%l
  )
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
rem use YYYYmmDD_HHmmSS format for the timestamp
set _stamp=%_year%%_month%%_day%_%_hh%%_mm%%_ss%
ren R:\1 %_stamp%
endlocal

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • for /f - Циклическая команда против результатов другой команды.
  • getdate - отображает дату и время независимо от локали ОС, языка или выбранного пользователем формата даты (панель управления / региональная).
  • переменные - извлечение части переменной (подстроки).
  • wmic - команда инструментария управления Windows.
1

Это более короткий способ сделать то, что вы конкретно хотите сделать. В моей работе Соглашения об уровне обслуживания имеют первостепенное значение, и я всегда буду использовать любое время обработки независимо от того, насколько тривиальным оно будет.

@echo off
REM Get date and time in YYYYMMDDhhmmss format
for /f "tokens=2 delims==." %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
rem put underscore in the middle of date and time stamp
ren R:\1 %dt:~0,8%_%dt:~8,6%

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