批处理文件中的MS-DOS日期变量



我正试图在MS-DOS中编写批处理文件,并需要一种方法来获取日期作为文件夹名称的变量。%date%在MS-DOS上不起作用,它只返回一个空白变量。有什么建议吗?谢谢你。

Paul Somerson的DOS Power Tools第二版中给出的另一种方法使用两个批处理文件。第一种是按原样使用的;必须命名为CURRENT.BAT:

@echo off
set day=%3
set date=%4

第二个是在需要日期时创建的:

echo | more | date > date$.bat

然后运行DATE$.BAT,您将在%DAY%中得到当前星期几,在%DATE%中得到日期。

echo | more | date导致date输出当前日期,然后中止;这会产生形式为

的输出
Current date is Fri 17/06/2022
Enter new date (dd-mm-yy):

(日期格式因国家设置而异)

将其存储在批处理文件中并运行CURRENT.BAT,参数为" date ", " is ", " Fri "one_answers" 17/06/2022 "。因为批处理文件相互替换(除非使用了CALL),所以DATE$.BAT中的第二行不会被执行,也不会导致任何错误。

注意,这是特定于MS-DOS的,并且是特定于语言环境的。它可以适应其他语言环境,但适应DOS克隆(如DR DOS)会更复杂。

可以通过使用提示命令

(错-)来解决
@echo off
%comspec% /C FOR %%n in (1 2) do PROMPT SET _date=$d$_ | find /V "PROMPT" > temp.bat
call temp.bat
del temp.bat
echo currentDate is %_date%

最新更新