我对批处理文件一无所知,我需要自动化应用程序。该应用程序有两个字段
在批处理文件中,我有应用程序的位置和我的登录信息。
另外我需要这两个日期。如何通过批处理文件获取日期?
在 Microsoft Windows 系统上,您可以使用date /t命令(该/t选项防止命令提示更改日期)或使用echo %date%显示日期环境变量的内容来获取当前日期。但是,DDD mm/dd/yyyy如果系统使用美国日期格式来显示日期,那么两者都以 形式显示日期,其中 DDD 是由 3 个字符的缩写表示的星期几,例如,“Thu”,mm 是两个- 月份的数字表示,例如,“08”代表八月,dd 是日,yyyy 是年。
C:\>date /t
Thu 08/06/2015
C:\>echo %date%
Thu 08/06/2015
Run Code Online (Sandbox Code Playgroud)
您可以重新格式化存储在%date%环境变量中的日期的表示形式。例如,如果您想要 yyyymmdd 形式的日期,您可以使用如下命令,其中一个变量YYYYMMDD被设置为保存重新格式化的日期;变量名可以是您喜欢的任何名称,例如 mydate 等。
C:\>set YYYYMMDD=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%
C:\>echo %YYYYMMDD%
20150806
Run Code Online (Sandbox Code Playgroud)
用于提取日期字符串元素的子字符串参数采用格式%variable:~startposition,numberofchars%,因此如果字符串“Thu 08/06/2015”中的“T”在星期四位于位置 0,则第 10 个字符是 2015 年的“2”我想要 4 个字符,即“2015”,所以%DATE:10,4%会给我这些字符。或者您也可以将第一个数字视为要跳过的字符数,即%variable:~num_chars_to_skip,numberofchars%. 然后,我可以追加%DATE:~4,2%获取月份的“08”,然后%DATE:~7,2%提取日期,即,如果日期是 2015 年 8 月 6 日,则在%DATE%变量中表示为“Thu 08/06/2015” ,则为“06”。带附加链接的参考
但是,如果您的批处理文件可能在其他国家/地区的系统上使用,则如果您要重新格式化日期而不是仅以任何格式显示它,则可能需要对除月/日/年以外的其他日期显示样式进行调整系统的默认值。如果您发出reg query命令,您可以看到系统的默认格式。例如:
C:\>reg query "HKCU\Control Panel\International" /v sShortDate
HKEY_CURRENT_USER\Control Panel\International
sShortDate REG_SZ M/d/yyyy
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我可以看到系统使用的是月/日/年格式。可以使用 来查看国家/地区的设置reg query "HKCU\Control Panel\International" /v sCountry,但如果您知道系统是使用默认日期表示的本地系统,那么您可能不必担心这一点。
关于获取昨天日期的方法,有几个 Stack Overflow 帖子,包括 DavidPostill 提到的帖子: