logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak uzyskać w skrypcie bat CMD windows 10 czas UTC?

zbyszekkr 31 Maj 2020 20:30 819 2
REKLAMA
  • #1 18730821
    zbyszekkr
    Poziom 17  
    Posty: 231
    Pomógł: 9
    Ocena: 74
    Witam.
    Szukam sposobu na uzyskanie w skrypcie bat windows 10 godziny UTC.
    Znalazłem w sieci funkcję opartą na Windows Management Instrumentation Command, która bez względu na ustawienia użytkownika podaje wynikowo czas lokalny
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "DateTime=%%a"

    Zna ktoś może odpowiednią funkcję dla UTC?
    Można by niby z wyniku powyższej funkcji obliczyć UTC po odjęciu od czasu lokalnego różnicy ale niestety sprawa się komplikuje, bo godzinę UTC chcę mieć w formacie dwucyfrowym.
    Po wywołaniu
    set "DiffUTC=%DateTime:~22,3%"
    set /a "DiffUTC=%DiffUTC /=60"
    set "Hour=%DateTime:~8,2%"
    set /a "Hour-=DiffUTC"
    echo %Hour%
    otrzymuję czas UTC, ale jak poniżej 10 to brak zera wiodącego.
    Jak dodać zero?
    Dodano po 22 [minuty]:
    a, jeszcze po północy do godz 2 wychodzą bzdury, bo godzina ujemna!
  • REKLAMA
  • Pomocny post
    #2 18731023
    WojtasJD
    Poziom 43  
    Posty: 13790
    Pomógł: 2920
    Ocena: 1587
    https://ss64.com/nt/syntax-gmt.html

    trzeba uzupełnić dodawanie zer dla godzin czyli tak:
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Uprość skrypt jak nie potrzeba np. czasu lokalnego itp.
  • #3 18731446
    zbyszekkr
    Poziom 17  
    Posty: 231
    Pomógł: 9
    Ocena: 74
    Dzięki, to działa. Znalazłem w sieci ten zapis Win32_UTCTime ale nie umiałem go użyć.
    Dzięki Tobie mój bat do ustawiania czasu w PBO z linuxem w końcu zadziała.
REKLAMA