Batch File: Display Current Time Zone

draxsath

Distinguished
Jul 20, 2003
99
0
18,630
I'm writing a complex batch file and i require one of the variables in the file to be what the current time zone of the machine is set to.

so far i have:
reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\TimeZoneInformation /v standardname | FIND "REG_SZ"

This returns:
standardname REG_SZ Eastern Standard Time

All I need is the last part: "Eastern Standard Time" put into a variable.

I'm totally stuck, anyone know how to do this?

I know to change the time zone you do:
RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl,,/Z Eastern Standard Time

but i don't need to change it, i need to know what it's set at currently.
 

Snertly

Distinguished
Oct 6, 2011
1
0
18,510
Better late than never?

Anyhoo, wrap a for statement around your reg query to parse the output of the reg query for the part you want.

(all on one line)

for /f "skip=4 tokens=2*" %a in ('reg query HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v standardname') do echo %b

note:
skip=4 if for XP, =2 for Win2K3

double percents (%%) if it's in a batch file

echo %b can be replaced by most any valid statement