首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Windows批处理脚本中设置日期和时间的格式

在Windows批处理脚本中设置日期和时间的格式
EN

Stack Overflow用户
提问于 2009-07-28 15:46:34
回答 37查看 942.3K关注 0票数 214

在Windows (Windows/XP)批处理脚本中,我需要格式化当前日期和时间,以便以后在文件名等中使用。

它类似于堆栈溢出问题,但也有时间。

到目前为止,我有这样的想法:

代码语言:javascript
复制
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%

这就给出了:

代码语言:javascript
复制
28/07/2009
 8:35:31.01
2009_07_28__ 8_36_01

有没有一种方法可以允许在%TIME%中使用一位数的小时,这样我就可以得到以下内容?

代码语言:javascript
复制
2009_07_28__08_36_01
EN

回答 37

Stack Overflow用户

回答已采纳

发布于 2009-07-28 15:43:48

我最终得到了这个脚本:

代码语言:javascript
复制
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
echo secs=%secs%

set year=%date:~-4%
echo year=%year%

::例如,在WIN2008R2上,我需要设置您的'set month=%date:~3,2%‘,如下所示::否则会出现00表示月份

代码语言:javascript
复制
set month=%date:~4,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
echo month=%month%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
echo day=%day%

set datetimef=%year%%month%%day%_%hour%%min%%secs%

echo datetimef=%datetimef%
票数 160
EN

Stack Overflow用户

发布于 2013-05-03 07:06:22

下面是我如何生成日志文件名(基于http://ss64.com/nt/syntax-getdate.html):

代码语言:javascript
复制
@ECHO OFF
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_error

:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
   IF "%%~L"=="" goto s_done
      Set _yyyy=%%L
      Set _mm=00%%J
      Set _dd=00%%G
      Set _hour=00%%H
      SET _minute=00%%I
      SET _second=00%%K
)
:s_done

:: Pad digits with leading zeros
      Set _mm=%_mm:~-2%
      Set _dd=%_dd:~-2%
      Set _hour=%_hour:~-2%
      Set _minute=%_minute:~-2%
      Set _second=%_second:~-2%

Set logtimestamp=%_yyyy%-%_mm%-%_dd%_%_hour%_%_minute%_%_second%
goto make_dump

:s_error
echo WMIC is not available, using default log filename
Set logtimestamp=_

:make_dump
set FILENAME=database_dump_%logtimestamp%.sql
...
票数 76
EN

Stack Overflow用户

发布于 2009-09-18 16:57:03

代码语言:javascript
复制
@ECHO OFF
: Sets the proper date and time stamp with 24Hr Time for log file naming
: convention ('YYYYMMDD_HHMMSS')

: Scrapes the characters out of their expected permissions in the date/time
: environment variables.

: Expects a date format of '____MM_DD_YYYY'
: Expects a time format of 'HH:MM:SS' or ' H:MM:SS'

SET HOUR=%time:~0,2%
SET dtStamp9=%date:~-4%%date:~4,2%%date:~7,2%_0%time:~1,1%%time:~3,2%%time:~6,2% 
SET dtStamp24=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%

if "%HOUR:~0,1%" == " " (SET dtStamp=%dtStamp9%) else (SET dtStamp=%dtStamp24%)

ECHO %dtStamp%

PAUSE
票数 72
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1192476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档