我正试图在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%