Pakiet Windows, Różne ustawienia regionalne, Zmień nazwę katalogu RRRRmmDD_GGmmSS

3

Data i godzina na 2 komputerach:

10/25/2017 3:36:05 a.m. __ on Windows 7  
2017-10-25 03:07:23 ______ on Windows XP  

Jak zmieniają się ustawienia regionalne,
jaki jest zalecany program narzędziowy i polecenie pliku
wsadowego do
automatyzacji wyjścia do standardowego formatu daty i godziny?
(Zmień nazwę katalogu R: \ 1)

ren R:\1 R:\20171025_021459

R:\yyyyMMdd_HHmmss  
R:\20171025_021459  
Joseph
źródło

Odpowiedzi:

3

Jak uzyskać standardowy format daty i godziny, który ignoruje ustawienia regionalne?

Użyj następującego pliku wsadowego (który jest prawidłowym sposobem analizowania danych wyjściowych czasu lokalnego 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

Dalsza lektura

  • Indeks AZ wiersza polecenia systemu Windows CMD - doskonałe odniesienie do wszystkich rzeczy związanych z wierszem cmd systemu Windows.
  • for / f - Polecenie zapętlone względem wyników innego polecenia.
  • getdate - Wyświetl datę i godzinę niezależnie od ustawień regionalnych systemu, języka lub wybranego przez użytkownika formatu daty (Panel sterowania / regionalny).
  • zmienne - Wyodrębnij część zmiennej (podciąg).
  • wmic - polecenie Instrumentacji zarządzania Windows.
DavidPostill
źródło
Zawsze używałem WMIC w ten sposób, aby uzyskać datę i godzinę. Wszystko wychodzi na zero:for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
Squashman
@Squashman To też działa. Jednak sposób, w jaki to robię, jest bardziej elastyczny, ponieważ możesz zamawiać lub pomijać komponenty w zależności od potrzeb.
DavidPostill
Jasne, zgodzę się co do tego, że jeśli pytanie użytkownika nie wymagało wypełnienia daty i godziny zero w innej kolejności, niż to, co otrzymuje dane lokalne datatime.
Squashman
2

Jest to krótszy sposób robienia tego, co chcesz. W mojej branży umowy o gwarantowanym poziomie usług są najważniejsze i oszczędzają czas przetwarzania, niezależnie od tego, jak trywialne jest to, czego zwykle używam.

@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%
Squashman
źródło