我正在使用Windows XP SP3。
如果我打开命令提示符窗口,然后键入
ECHO %DATE%
我得到:
14-08-2018
像我应该的。
但是,如果我退出Windows并从具有DOS的可启动USB闪存驱动器中启动计算机,
(真实的DOS,而不是Windows中的命令提示符),
然后输入相同的命令,
那么%DATE%
似乎是空的。
命令
ECHO %DATE%
回复
ECHO is On
因为它以为我刚写了ECHO
,
因为从%DATE%
返回的值为“”。
我尝试了2种不同的DOS版本。.
Win98的DOS和WinME的DOS。
(2个不同的USB闪存驱动器)
有人知道为什么我无法在实际的DOS中获取日期吗?
在Windows的命令提示符下可以成功获取它吗?
答案 0 :(得分:3)
%ERRORLEVEL%
在DOS中不是变量
%ERRORLEVEL%
在DR-DOS 7.02及更高版本的COMMAND.COM中,此伪变量返回由外部程序或
RETURN
命令返回的最后一个错误级别,例如。 “ 0” ..“ 255”。另请参见Windows下同名的伪变量%ERRORLEVEL%
和IF ERRORLEVEL
条件命令。
如您所见,它仅存在于DR-DOS 7.02及更高版本和Windows中。 DR-DOS也有%ERRORLVL%
OTOH %DATE%
仅在Windows上存在
%DATE%
此伪变量扩展为当前日期。根据当前用户的日期格式首选项显示日期。
它们是cmd.exe的新功能,需要启用command extension
如果命令扩展名被禁用,则以下动态变量将不可访问:
%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
因此,如果您关闭命令扩展以实现DOS兼容性,那么您在Windows cmd.exe上也会丢失这些变量