Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何从bat文件更改显示的时区_Batch File_Time_Output - Fatal编程技术网

Batch file 如何从bat文件更改显示的时区

Batch file 如何从bat文件更改显示的时区,batch-file,time,output,Batch File,Time,Output,我正在运行一个小的.bat脚本,将系统时间输出到一个文本文件,然后导入OBS。但是,它所用于的项目需要以中部时间而不是东部时间(我的时区)显示时间。是否可以在不更改计算机时钟时区的情况下更改输出时区 :循环 time/T>C:\Users\Brennan\Desktop\time\time.txt 时间/吨 超时/t 15 转到循环区域可以通过tzutil设置,但这是一个全局(系统范围)更改--setlocal命令不会对其进行本地化。通过保存和恢复所需区域,以下操作将临时更改该区域: for

我正在运行一个小的.bat脚本,将系统时间输出到一个文本文件,然后导入OBS。但是,它所用于的项目需要以中部时间而不是东部时间(我的时区)显示时间。是否可以在不更改计算机时钟时区的情况下更改输出时区

:循环
time/T>C:\Users\Brennan\Desktop\time\time.txt
时间/吨
超时/t 15

转到循环
区域可以通过tzutil设置,但这是一个全局(系统范围)更改--setlocal命令不会对其进行本地化。通过保存和恢复所需区域,以下操作将临时更改该区域:

for /f "delims=" %%z in ('tzutil /g') do (
  rem set desired zone
  tzutil /s "Central Standard Time"

  time /T > C:\Users\Brennan\Desktop\time\time.txt

  rem restore original zone
  tzutil /s "%%z"
)

注意,更改是系统范围内的,因此tzutil调用与系统时钟之间的周期将更改。如果在tzutil调用之间中止脚本,则系统时区将保持更改。

命令
wmic path win32\u utctime get
输出UTF-16 Little-Endian编码:

Day  DayOfWeek  Hour  Milliseconds  Minute  Month  Quarter  Second  WeekInMonth  Year
16   0          11                  12      7      3        19      4            2017
此输出可通过命令FOR进行解析,并连接到国际日期/时间格式的UTC日期/时间字符串
YYYY-MM-DD HH:MM:ss
wit命令SET

@echo off
for /F "skip=1 tokens=1,3,4,5,7,9" %%A in ('%SystemRoot%\System32\wbem\wmic.exe path win32_utctime get') do (
    set "Day=0%%A"
    set "Hour=0%%B"
    set "Minute=0%%C"
    set "Month=0%%D"
    set "Second=0%%E"
    set "Year=%%F"
    goto BuildDateTime
)

:BuildDateTime
set "DateTimeUTC=%Year%-%Month:~-2%-%Day:~-2% %Hour:~-2%:%Minute:~-2%:%Second:~-2%"
echo UTC date/time is: %DateTimeUTC%
上述发布数据的批处理文件的输出为:

UTC date/time is: 2017-07-16 11:12:19
还可以修改代码以获得UTC时间:

@echo off
for /F "skip=1 tokens=3,4,7" %%A in ('%SystemRoot%\System32\wbem\wmic.exe path win32_utctime get') do (
    set "Hour=0%%A"
    set "Minute=0%%B"
    set "Second=0%%C"
    goto BuildTime
)

:BuildTime
set "TimeUTC=%Hour:~-2%:%Minute:~-2%:%Second:~-2%"
echo UTC time is: %TimeUTC%
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • 获取/?
  • 设置/?
  • wmic/?
  • wmic路径/?
  • wmic路径win32\u utctime/?
  • wmic路径win32\u utctime get/?

请参见“wmic操作系统获取当前时区”和“tzutil/?”``