如何使用DOS批处理文件命令将日期设置为当前日期

3
如何使用DOS批处理文件命令将日期设置为当前日期。

2
批处理文件也是编程。 - Loopo
6个回答

9
如果您需要在批处理文件中使用当前日期,变量%date%表示当前日期:
echo %date%
23/02/2010

它使用计算机的区域设置格式。在我的电脑上,它是dd/mm/yyyy

由于/不能成为文件名的一部分,它们必须被替换为安全字符或不替换:

echo %date:/=-%
23-02-2010

echo %date:/=%
23022010

如果你想创建一个文件的备份副本,可以执行以下操作:
copy file.txt file-%date:/=%.txt
dir /b file*.*
file-23022010.txt
file.txt

或者先将其设置为变量,然后再使用:

set currdate=%date:/=%
copy file.txt file-%currdate%.txt

3

你要找的是日期命令。它适用于我的Windows XP系统:

date 15-02-2010

请注意格式dd-MM-yyyy,这可能是因为我的区域设置为丹麦而必须的。文档说明格式应为MM-dd-yy,但在我的计算机上,如果以该格式编写日期,则日期和月份字段会反转。


当您不想在命令中硬编码当前日期时,该怎么办?是否有像date curdate()这样的命令? - silverkid
从BIOS中提取日期的程序 - silverkid
我不确定我是否理解你的意思。你可以使用 date /t 命令来获取当前日期,但是你最初的问题似乎是关于如何设置日期。 - Jørn Schou-Rode

1

如果您启用了“自动设置时间”选项,则此方法应该有效:

net stop w32time    
net start w32time
w32tm /resync /nowait

或者你可以将当前日期保存到文本文件中,然后将当前日期传递给date命令:

date /t>current_date.txt

或者

echo %date%>current_date.txt

然后将当前日期传递给date命令:
date<current_date.txt

1

当您在DOS命令中键入“date”时,它将显示在BIOS中指定的日期,并要求您设置当前日期(如果BIOS中的日期不是当前日期,则可以设置此日期)。系统无法知道其日期是否正确。

如果您有一个具有正确日期的服务器,则可以使用“net time”使客户端与服务器同步。

NET TIME <SERVERNAME> /SET

或者

NET TIME \\SERVERNAME /SET /YES

这是唯一一个实际回答了(虽然非常模糊的)问题的答案。 - Stephan

-1
如果您需要在创建文件时包含时间,可以使用以下方法:
C:\scripts\startup.bat >> automaton_logs_%date:/=%_%time:~0,2%%time:~3,2%%time:~6,2%.txt 2>&1
此命令运行一个脚本,并将标准输出和错误重定向到带有执行时间戳的文件中。当在桌面上的快捷方式中配置时,可以查看文件名。
要查看它将使用的文件名,可以执行以下命令:
C:\Users\Administrator>echo automaton_logs_%date:/=%_%time:~0,2%%time:~3,2%%time:~6,2%.txt

automaton_logs_16062023_111951.txt


1
问题是关于“设置”时间,而不是关于“使用”时间字符串。 - Stephan

-2

你必须考虑到美国日期与欧洲日期有些不同。 给定日期的显示为:

>date
The current date is: 2019-09-12
Enter the new date: (yy-mm-dd)
But US date will be something like: mm-dd-yy

最好看一下: https://www.robvanderwoude.com/batexamples.php

您能进一步解释一下这个信息是如何解决给定的(非常模糊的)问题的吗? - Nico Haase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接