当前位置: 首页 > 面试题库 >

执行批处理文件时,日期和时间未以正确的格式保存[重复]

唐修诚
2023-03-14
问题内容

更新:现在是2016年,除非有确实令人信服的向后兼容原因,否则我将使用PowerShell,特别是因为using的区域设置问题date

Windows命令行语句是什么,我可以用可以放入文件名的格式来获取当前日期时间?

我想要一个.bat文件,该文件将目录压缩到存档中,并将当前日期和时间作为名称的一部分,例如Code_2008-10-14_2257.zip。有什么简单的方法可以做到这一点,而与计算机的区域设置无关吗?

我不太在乎日期格式,理想情况下是yyyy-mm-dd,但是任何简单的方法都可以。

到目前为止,我已经知道了,这在我的机器上可以给我Tue_10_14_2008_230050_91

rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%

rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code

我可以忍受,但似乎有些笨拙。理想情况下,它会更简短并且具有前面提到的格式。

我正在使用Windows Server 2003和Windows XP
Professional。我不想安装其他实用程序来实现此目的(尽管我知道有些实用程序可以很好地格式化日期)。


问题答案:

请参阅 Windows批处理文件(.bat)以MMDDYYYY格式获取当前日期

@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
echo %mydate%_%mytime%

如果您更喜欢24小时/军事格式的时间,则可以用以下方式替换第二条FOR行:

For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)

C:>。\ date.bat
2008-10-14_0642

如果您希望日期与区域日/月顺序无关,则可以使用“ WMIC os GET LocalDateTime”作为来源,因为它采用ISO顺序:

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
echo Local date is [%ldt%]

C:> test.cmd
当地日期为[2012-06-19 10:23:47.048]



 类似资料:
  • 主要内容:日期,时间,日期格式化:年-月-日DOS脚本中的日期和时间具有以下两个用于检索系统日期和时间的基本命令。 日期 该命令获取系统日期。 语法 示例 当前日期将显示在命令提示符下。 例如, 时间 该命令设置或显示时间。 语法 示例 当前时间将显示在命令提示符下。 例如, 以下是一些可用于以不同格式获取日期和时间的实现。 日期格式化:年-月-日 示例 以上命令产生以下输出 -

  • 我正在处理一个在现有数据库上运行的项目。问题在于,在SQL Server中插入日期时间列时使用了错误的格式。服务器使用datetime作为Y-m-d,数据保存为Y-d-m。 我做了一些测试,当保存到MariaDB日期时间保存正确。 有更新的和创建的自定义字段,因此它们在模型上声明。 在模型中 这是保存数据后的QueryLog打印。正如您在查询日志中所看到的,datetime格式被正确解析为SQL

  • 我对spring batch基本上是新手。第一步,我从SFTP服务器获取一个文件,并使用JSch将其传输到本地目录。第二步,我读取本地目录中的文件,并将内容写入数据库。问题在于,在某些情况下,只执行saveDruchAltransaction(步骤2),而不执行getRemoteFile(步骤1) 配置类: 读者: 作家: 微线程: 我不知道该怎么做...我一直在尝试我从各地找到的东西。请帮忙谢谢

  • Db是MySQL 5.0,Yii版本1.1.12。 如果有任何帮助,我将不胜感激,我几乎被卡住了.....谢谢...

  • 我需要将日期/时间从2014年8月20日15:30:00更改为2014年8月20日下午3:30 这可以使用javascript的日期对象来完成吗?

  • 我有以下代码来解析和格式化日期: 其输出如下所示: 为什么PM打印机和AM一样?